一些用户收到不受信任的 SSL 证书警告

一些用户收到不受信任的 SSL 证书警告

我收到过用户通过 https 访问我们网站时收到“此证书不受信任”错误的报告。我似乎从未遇到过任何问题,但我团队中的两个人在使用我们办公室以外的其他 wifi 网络时随机遇到了此错误。他们在办公室没有遇到同样的问题。

我阅读了有关中级证书的资料,但这似乎只是浏览器的问题,而不是网络相关的问题。

我有一个来自 GoDaddy 的 SSL 证书,它位于 nginx + unicorn 上运行的 Rails 应用程序上。

有谁知道为什么会发生这种情况?我很困惑。

运行时我确实得到了下面的内容(已删除)openssl s_client -connect $hostname:443

CONNECTED(00000003) depth=2 C = US, O = "The Go Daddy Group, Inc.", OU = Go Daddy Class 2 Certification Authority verify error:num=19:self signed certificate in certificate chain verify return:0

答案1

此问题与添加整个证书链有关——对我来说,我需要将gd_bundle.crt文件连接到我的分布式证书并将其重新上传到服务器。我能够使用在线 SSL 检查器验证它是否有效。

答案2

我假设您已经知道 SSL/TLS 的工作原理:SSL 证书必须由受信任的机构 (CA) 签名,并且受信任的机构已将其公钥(根证书)实施到浏览器软件中。受信任机构的私钥变得非常有价值,丢失将是最大的意外。因此,受信任的机构 (CA) 已将其私钥锁定,并且不使用它们来签署客户的通用证书请求。为此,他们使用子证书和子子证书(我们称之为中间证书)。

您的浏览器能够看到该信任链(您的证书 -> CA 的中间证书 #2 -> CA 的中间证书 #1 -> CA 的根证书)并遵循它。

实际上,大多数证书都提供不止一条信任链​​。如果浏览器没有实现正确的根证书,这是一种后备方法。

为了让大多数浏览器遵循您的信任链,您必须将服务器证书和所有必需的中间证书连接到一个大文本文件中。重新启动服务器并使用 OpenSSL 测试证书的信任链是否正常工作。

如果你不熟悉 OpenSSL,你可以使用Qualys SSL Labs 网站。在这里,您可以查看所有提供的信任链是否正常工作,以及有关 SSL/TLS 设置的其他非常有用的信息。

答案3

您可以在 vhost 配置中的 SSLCertificateChainFile 指令中添加包含 GoDaddy 信任链的 PEM 文件。

相关内容