В диалоговом окне «Информация о странице» в Firefox уже отображается информация о сертификате, поэтому неплохо бы взглянуть на , как это реализовано . Подведем итог:
- Элемент
<browser>
или <tabbrowser>
(gBrowser
в окне Firefox) имеет свойство securityUI .
- Значение этого свойства реализует nsISSLStatusProvider интерфейс, который позволяет вам получить nsISSLStatus .
- Оттуда вы можете получить nsIX509Cert , который имеет всю необходимую информацию.
Пример кода:
var status = gBrowser.securityUI
.QueryInterface(Components.interfaces.nsISSLStatusProvider)
.SSLStatus;
if (status && !status.isUntrusted)
{
// This shows: OU=Equifax Secure Certificate Authority,O=Equifax,C=US
alert(status.serverCert.issuerName);
// This shows: Equifax Secure Certificate Authority
alert(status.serverCert.issuerOrganizationUnit);
}
Обратите внимание, что интерфейс не позволяет извлекать страну эмитента, вам придется проанализировать status.serverCert.issuerName
value самостоятельно. Кроме того, таким способом вы получаете информацию только о непосредственном эмитенте, а не о корневом СА. Чтобы добраться до корневого ЦС, вам нужно использовать свойство status.serverCert.issuer
и пройтись по цепочке.