webRequest.getSecurityInfo()
============================

Utilisez cette fonction pour obtenir des informations détaillées sur la connexion TLS associée à une demande particulière..

Vous passez à cette fonction la `requestId` pour la requête en question, et quelques paramètres supplémentaires optionnels. Il retourne une `Promise` qui sera résolue à un objet `SecurityInfo`.

Vous ne pouvez appeler cette fonction qu'à partir de l'écouteur `webRequest.onHeadersReceived`. La `requestId` peut être trouvée dans l'objet `details` object qui est passé dans l'écouteur.

Vous devez également passer l'option "blocking" à `webRequest.onHeadersReceived.addListener()`. Ainsi, pour utiliser cette API, vous devez avoir la permission de l'API "webRequestBlocking", ainsi que les permissions normales nécessaires pour utiliser les écouteurs `webRequest` (la permission "webRequest" et la permission hôte pour le hôte).

Syntaxe
-------


```js
var gettingInfo = browser.webRequest.getSecurityInfo(
  requestId, // string
  options, // object
);
```

### Paramètres

`requestId`

`string`. ID de la requête pour laquelle vous souhaitez obtenir des informations de sécurité. Vous pouvez l'obtenir à partir de l'objet de `details` qui est passé dans n'importe quel écouteur d'événement `webRequest`.

`options`

`object`. Un objet qui peut contenir l'une des propriétés suivantes, toutes facultatives :

`certificateChain` Facultatif

`boolean`. Si `true`, l'objet `SecurityInfo` retourné inclura toute la chaîne de certificats jusqu'à et y compris la racine de confiance. Si `false`,
 il n'inclura que le certificat du serveur. La valeur par défaut est `false`.


`rawDER` Facultatif

`boolean`. Si true, chaque propriété `CertificateInfo` dans le `SecurityInfo.certificates` contiendra une propriété `rawDER`. Il contient le DER-encoded ASN.1 qui comprend les données du certificat.


### Valeur retournée

Une `Promise` qui se résout en un objet `SecurityInfo`.

Compatibilité des navigateurs
-----------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Exemples
--------

Cet exemple écoute toutes les requêtes HTTPS à "mozilla.org" ou ses sous-domaines, et enregistre le nom de l'objet dans le certificat du serveur :


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


Cet exemple écoute toutes les requêtes HTTPS à "mozilla.org" ou ses sous-domaines, et enregistre le nom dans le certificat racine de confiance :


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

### Example extensions

* root-cert-stats