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

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:

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

Beispiel-Erweiterungen