这可以使用JavaScript或PHP吗?我希望能够检测到我的私人CA是否安装在用户的iOS或Android设备上。从那里我可以决定是否提供安装说明。我一直是“googlin”,并没有找到任何有用的东西。有人曾尝试过这个吗?我想知道我应该花时间学习什么。如果不可能,你能建议使用浏览器吗?
编辑:我在这里没有选择,这不是我的决定。出于其他安全原因,将使用私有CA证书。
答案 0 :(得分:6)
我怀疑会有任何类型的设备查询来测试它。
我实际上并没有这样做,但您可能会想出一个测试,其中JavaScript向使用您要测试的证书的https服务器发出AJAX请求。如果请求成功,则证书正在运行。 (This question似乎暗示如果SSL证书没有验证,AJAX请求将(正确)失败)
请注意,由于URL的方案(http或https)会有所不同(可能是域名,具体取决于您如何设置),您的测试站点必须使用CORS {{1标头允许浏览器发出请求。请参阅:AJAX calls to untrusted (self-signed) HTTPS fail silently
编辑:
我有一些时间,并把一个非常简单的例子放在一起。转到http://ssl_test.gjp.cc。该页面将尝试向https://ssl_test2.gjp.cc发出AJAX请求,该请求使用自签名证书。在您信任Access-Control-Allow-Origin
之前,您会在ssl_test2
页面上看到“失败”,但是一旦您信任ssl_test
的证书,就应该始终在ssl_test2
上看到“成功”
请注意,这并不能证明您的用户已安装了CA证书 - 证明他们已将其浏览器配置为信任测试站点(ssl_test
)。如果您从未直接将用户指向测试站点,那么他们将永远不会仅仅信任该站点,因此这应该可以很好地工作。
答案 1 :(得分:1)
也许this会有所帮助:
<img src="https://the_site/the_image" onerror="redirectToCertPage()" />