webRequest.getSecurityInfo()
Verwenden Sie diese Funktion, um detaillierte Informationen über die TLS-Verbindung zu erhalten, die mit einer bestimmten Anfrage verbunden ist.
Sie übergeben dieser Funktion die requestId
für die betreffende Anfrage und einige optionale zusätzliche Parameter. Sie gibt ein Promise
zurück, das zu einem 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 an den Listener übergeben wird.
Sie müssen auch die Option "blocking" an webRequest.onHeadersReceived.addListener()
übergeben. Um diese API zu verwenden, benötigen Sie daher die "webRequestBlocking"-API-Berechtigung sowie die normalen Berechtigungen, die für die Verwendung von webRequest
-Listenern erforderlich sind (die "webRequest"-Berechtigung und die host permission 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 erhalten möchten. Diese können Sie aus demdetails
-Objekt erhalten, das an allewebRequest
-Event-Listener übergeben wird. options
Optional-
object
. Ein Objekt, das eine beliebige 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. Standardwert istfalse
. rawDER
Optional-
boolean
. Wenntrue
, wird jedesCertificateInfo
in der EigenschaftSecurityInfo.certificates
eine EigenschaftrawDER
enthalten. Diese enthält das DER-kodierte ASN.1, das die Zertifikatsdaten umfasst.
Rückgabewert
Ein Promise
, das zu einem SecurityInfo
-Objekt aufgelöst wird.
Beispiele
Dieses Beispiel lauscht auf alle HTTPS-Anfragen an "mozilla.org" oder dessen Subdomains und protokolliert den Namen des Subjekts im Serverzertifikat:
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 lauscht auf alle HTTPS-Anfragen an "mozilla.org" oder dessen Subdomains und protokolliert den Namen im vertrauenswürdigen 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"],
);