webRequest.getSecurityInfo()
Verwenden Sie diese Funktion, um detaillierte Informationen über die TLS-Verbindung zu erhalten, die mit einer bestimmten Anfrage verknüpft ist.
Sie übergeben dieser Funktion die requestId
für die betreffende Anfrage sowie einige optionale zusätzliche Parameter. Sie gibt ein Promise
zurück, das in ein SecurityInfo
-Objekt aufgelöst wird.
Sie können diese Funktion nur innerhalb des webRequest.onHeadersReceived
-Listeners aufrufen. Die requestId
finden Sie im details
-Objekt, das dem Listener übergeben wird.
Sie müssen außerdem die Option "blocking" an webRequest.onHeadersReceived.addListener()
übergeben. Um diese API zu verwenden, benötigen Sie die "webRequestBlocking"-API-Berechtigung sowie die normalen Berechtigungen zur Verwendung von webRequest
-Listenern (die "webRequest"-Berechtigung und die Host-Berechtigung für den Host).
Syntax
let gettingInfo = browser.webRequest.getSecurityInfo(
requestId, // string
options // optional object
)
Parameter
requestId
-
string
. ID der Anfrage, für die Sie Sicherheitsinformationen wünschen. Diese erhalten Sie aus demdetails
-Objekt, das jedemwebRequest
-Ereignislistener übergeben wird. options
Optional-
object
. Ein Objekt, das eine dieser Eigenschaften enthalten kann:certificateChain
Optional-
boolean
. Wenntrue
, enthält das zurückgegebeneSecurityInfo
-Objekt die gesamte Zertifikatskette bis hin zur Vertrauenswurzel. Wennfalse
, enthält es nur das Serverzertifikat. Standardmäßig istfalse
. rawDER
Optional-
boolean
. Wenntrue
, enthält jedesCertificateInfo
imSecurityInfo.certificates
-Eigenschaft einenrawDER
. Dieses enthält das DER-kodierte ASN.1, das die Zertifikatdaten umfasst.
Rückgabewert
Ein Promise
, das in ein SecurityInfo
-Objekt aufgelöst wird.
Browser-Kompatibilität
Beispiele
Dieses Beispiel hört auf alle HTTPS-Anfragen an "mozilla.org" oder dessen Subdomains und protokolliert den Namen des Subjektzertifikats:
async function logSubject(details) {
try {
let securityInfo = await browser.webRequest.getSecurityInfo(
details.requestId,
{},
);
console.log(details.url);
if (securityInfo.state === "secure" || securityInfo.state === "weak") {
console.log(securityInfo.certificates[0].subject);
}
} catch (error) {
console.error(error);
}
}
browser.webRequest.onHeadersReceived.addListener(
logSubject,
{ urls: ["https://*.mozilla.org/*"] },
["blocking"],
);
Dieses Beispiel hört auf alle HTTPS-Anfragen an "mozilla.org" oder dessen Subdomains und protokolliert den Namen im zertifizierten Root-Zertifikat:
async function logRoot(details) {
try {
let securityInfo = await browser.webRequest.getSecurityInfo(
details.requestId,
{ certificateChain: true },
);
console.log(details.url);
if (securityInfo.state === "secure" || securityInfo.state === "weak") {
console.log(
securityInfo.certificates[securityInfo.certificates.length - 1].issuer,
);
}
} catch (error) {
console.error(error);
}
}
browser.webRequest.onHeadersReceived.addListener(
logRoot,
{ urls: ["https://*.mozilla.org/*"] },
["blocking"],
);