我正在构建一个Firefox附加组件,需要提取收到的SSL证书的详细信息,例如CA的名称,CA的国家/地区(证书颁发机构)。我想知道是否可以使用JavaScript提取上述细节,或者我是否需要使用OpenSSL从而将它们链接起来?
有没有更好的解决方案?
答案 0 :(得分:1)
Firefox中的“页面信息”对话框已显示证书信息,因此最好查看how it is implemented。总结一下:
<browser>
或<tabbrowser>
元素(Firefox窗口中的gBrowser
)具有属性securityUI。代码示例:
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
值。此外,您只能通过这种方式获得有关直接发行者的信息,而不是根CA.要访问根CA,您应该使用status.serverCert.issuer
属性并向上走。