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

js
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 dem details-Objekt erhalten, das an jeden webRequest-Ereignis-Listener übergeben wird.

options Optional

object. Ein Objekt, das folgende Eigenschaften enthalten kann:

certificateChain Optional

boolean. Wenn true, wird das zurückgegebene SecurityInfo-Objekt die gesamte Zertifikatskette bis einschließlich der Vertrauenswurzel enthalten. Wenn false, wird es nur das Serverzertifikat enthalten. Standard ist false.

rawDER Optional

boolean. Wenn true, wird in jedem CertificateInfo in der SecurityInfo.certificates-Eigenschaft eine Eigenschaft rawDER 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

Report problems with this compatibility data on GitHub
desktopmobile
Chrome
Edge
Firefox
Opera
Safari
Firefox for Android
Safari on iOS
getSecurityInfo
options

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support
No support
No support
See implementation notes.
Has more compatibility info.

Beispiele

Dieses Beispiel hört auf alle HTTPS-Anfragen an "mozilla.org" oder dessen Subdomains und protokolliert den Subjektnamen im Serverzertifikat:

js
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:

js
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"],
);

Beispielerweiterungen