我们正在运行一个使用自签名ssl证书的Intranet应用程序。
客户确实信任我们的CA.
几年以来,我们一直在使用这种方式。
在某些PC上,我们的CA未导入,用户每天都会从浏览器收到警告。
不幸的是,用户没有告诉我们这一点,他们只是一次又一次地说“接受证书”。
有没有办法检测页面的信任?
我们正在运行Web应用程序,并希望获得一个注释,如果浏览器确实手动接受该证书。然后我们可以与PC的管理员取得联系,并向他发送一条暗示PC不信任我们的CA的提示。
也许有可能以这种方式检测JavaScript?
更新我不对客户端PC负责。我无权访问它们来安装或管理证书。
这是可能的,但browser support目前还不是很高。如果除了基于铬的浏览器和firefox(这些确实构成了大多数用户代理)之外你不能支持任何东西,你可以使用
window.isSecureContext
如果浏览器信任您的证书,请查明。因此,为了记录每次有人不信任您的证书,您可以这样做:
if (!window.isSecureContext){
//do ajax call
}
该信息不通过Javascript(参考Is there a way to get SSL certificate details using JavaScript?)公开。
根据具体情况,您可以:
1)使用组策略将CA部署到所有PC 2)使用其他管理软件部署CA. 3)使用实际的可信证书颁发机构(通过购买证书或使用Let的加密)
这是一个非详尽的列表,所以如果您有关于您的环境的更多信息,我可以提供其他选项。