webRequest.getSecurityInfo()
Verwenden Sie diese Funktion, um detaillierte Informationen über die TLS-Verbindung abzurufen, 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 auf ein SecurityInfo
-Objekt aufgelöst wird.
Sie können diese Funktion nur innerhalb des webRequest.onHeadersReceived
-Listeners aufrufen. Die requestId
kann im details
-Objekt gefunden werden, das an den Listener übergeben wird.
Sie müssen auch die Option "blocking" an webRequest.onHeadersReceived.addListener()
übergeben. Um diese API zu nutzen, müssen Sie die Berechtigung "webRequestBlocking" haben, sowie die normalen Berechtigungen, die für die Verwendung von webRequest
-Listenern erforderlich sind (die Berechtigung "webRequest" 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 erhalten möchten. Diese können Sie aus demdetails
-Objekt erhalten, das an jedenwebRequest
-Ereignis-Listener übergeben wird. options
Optional-
object
. Ein Objekt, das folgende Eigenschaften enthalten kann:certificateChain
Optional-
boolean
. Wenntrue
, wird das zurückgegebeneSecurityInfo
-Objekt die gesamte Zertifikatskette bis einschließlich der Vertrauenswurzel enthalten. Wennfalse
, wird es nur das Serverzertifikat enthalten. Standard istfalse
. rawDER
Optional-
boolean
. Wenn true, wird in jedemCertificateInfo
in derSecurityInfo.certificates
-Eigenschaft eine EigenschaftrawDER
enthalten sein. Diese enthält das DER-codierte ASN.1, das die Zertifikatsdaten umfasst.
Rückgabewert
Ein Promise
, das auf ein SecurityInfo
-Objekt aufgelöst wird.
Browser-Kompatibilität
BCD tables only load in the browser
Beispiele
Dieses Beispiel hört auf alle HTTPS-Anfragen an "mozilla.org" oder dessen Subdomains und protokolliert den Subjektnamen 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 hört auf alle HTTPS-Anfragen an "mozilla.org" oder dessen Subdomains und protokolliert den Namen im vertrauenswürdigen Wurzelzertifikat:
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"],
);