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

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 alle webRequest-Event-Listener übergeben wird.

options Optional

object. Ein Objekt, das eine beliebige dieser Eigenschaften enthalten kann:

certificateChain Optional

boolean. Wenn true, enthält das zurückgegebene SecurityInfo-Objekt die gesamte Zertifikatskette bis hin zur Vertrauenswurzel. Wenn false, enthält es nur das Serverzertifikat. Standardwert ist false.

rawDER Optional

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

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 lauscht auf alle HTTPS-Anfragen an "mozilla.org" oder dessen Subdomains und protokolliert den Namen im vertrauenswürdigen Root-Zertifikat:

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

Browser-Kompatibilität