Use this function to get detailed information about the TLS connection associated with a particular request.
You pass this function the
requestId
for the request in question, and some optional extra parameters. It returns a
Promise
which will resolve to a
SecurityInfo
对象。
You can only call this function from inside the
webRequest.onHeadersReceived
listener. The
requestId
可以找到在
details
object which is passed into the listener.
You must also pass the "blocking" option to
webRequest.onHeadersReceived.addListener()
. So to use this API you must have the "webRequestBlocking"
API permission
, as well as the normal permissions needed for using
webRequest
listeners (the "webRequest" permission and the
host permission
for the host).
var gettingInfo = browser.webRequest.getSecurityInfo(
requestId
,
// string
选项
// object
)
requestId
string
. ID of the request for which you want security info. You can get this from the
details
object that is passed into any
webRequest
event listeners.
选项
对象
. An object which may contain any of the following properties, all optional:
certificateChain
可选
boolean
。若
true
,
SecurityInfo
object returned will include the entire certificate chain up to and including the trust root. If
false
, it will include only the server certificate. Defaults to
false
.
rawDER
可选
boolean
. If true, every
CertificateInfo
在
SecurityInfo.certificates
property will contain a property
rawDER
. This contains the DER-encoded ASN.1 that comprises the certificate data.
A
Promise
which resolves to a
SecurityInfo
对象。
BCD tables only load in the browser
This example listens for all HTTPS requests to "mozilla.org" or its subdomains, and logs the subject name in the server certificate:
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"]
);
This example listens for all HTTPS requests to "mozilla.org" or its subdomains, and logs the name in the trusted root certificate:
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"]
);
最后修改: , 由 MDN 贡献者