我的网站的 SSL 证书,https://www.snipsalonsoftware.com/,在 Android 上不起作用。在解决此问题时,我将我的网站插入了 Qualys SSL Labs 测试工具:
https://www.ssllabs.com/ssltest/analyze.html?d=www.snipsalonsoftware.com&s=50.57.181.104
这份报告似乎告诉我,我遇到了“连锁问题”。有些事情“不完整”。但我不明白到底什么是不完整的。
在下一节的“认证路径”下,我看到橙色(我猜橙色的意思是“有点糟糕”)的“额外下载”。我不知道这是什么意思,也不知道该如何修复。我发现此主题但我不知道如何将他们所说的话转化为对我有用的解决方案。
我应该怎么办?
答案1
您已将服务器配置为仅将证书发送给浏览器。对于大多数桌面浏览器,这没问题,因为它们已经包含大量中间 CA 和根 CA 详细信息,因此它们可以轻松构建信任链。对于大多数移动浏览器,您通常需要提供整个证书链,即您自己的证书、颁发 CA 的证书以及该证书与最终根 CA 之间可能存在的任何中间证书。在这种情况下,移动设备可能只具有根 CA 详细信息。
对于您的特定证书,您可以阅读此 Comodo 帮助台文章:知识库:Comodo 证书颁发机构 > 证书 > SSL > 证书安装
答案2
证书可以包含特殊权限信息访问扩大 (RFC-3280) 以及颁发者证书的 URL。大多数浏览器可以使用 AIA 扩展下载缺失的中间证书以完成证书链。但有些客户端(移动浏览器、OpenSSL)不支持此扩展,因此它们会将此类证书报告为不受信任。
你可以解决证书链不完整通过将证书中的所有证书连接到受信任的根证书(按此顺序排除)来手动颁发,以防止此类问题。请注意,受信任的根证书不应存在,因为它已包含在系统的根证书存储中。
您应该能够从颁发者处获取中间证书并自行将它们连接在一起。我编写了一个脚本来自动执行该过程,它循环遍历 AIA 扩展以生成正确链接的证书的输出。https://github.com/zakjan/cert-chain-resolver