仅在我的 Linux 计算机上无效 SSL 证书

仅在我的 Linux 计算机上无效 SSL 证书

我正在托管一个网站,我的 DNS 服务器来自 NameCheap,我在那里购买了 SSL 证书并通过 nginx 配置它,一切都很好,但是有一天 chrome 开始抱怨该证书现在无效(并且到期日期是尚未通过),我的网站是 lodugo.com,这也发生在我现在不记得的其他一些特定页面上,但它只发生在我个人的 Linux 笔记本电脑、任何其他网络中的任何其他设备(本地或通过网络)互联网,没有问题

最有趣的是,如果我在我的个人 Linux 笔记本电脑上以隐身模式使用 chrome,它不会抱怨证书。

我将其发布在这里,因为看起来操作系统正在拒绝证书本身,或者这就是 chrome 所说的:

This server could not prove that it is lodugo.com; its security certificate is not trusted by your computer's operating system. This may be caused by a misconfiguration or an attacker intercepting your connection.

我已经检查了基础知识,我的时间和日期都很好,其他设备在任何情况下都工作正常,我没有接触服务器端的任何内容。任何人都可以帮助提示或解释可能发生的情况吗?

在这里您可以找到有错误且处于隐身模式的证书图片(没有错误且在同一台机器上)

错误: 错误

隐身且没有错误: 隐姓埋名

详细信息选项卡出现错误: 详细信息选项卡有错误

隐身模式下的详细信息选项卡 隐身模式下的详细信息选项卡

答案1

这听起来像是 Chrome 无权访问必要的 CA 证书。快速检查一下ssllabs.com表明您的网站缺少中间证书。当您购买证书时,他们通常会为您提供中级证书以及您自己的证书。

通常,浏览器只会存储根 CA 证书,并期望 Web 服务器将中间证书与 Web 服务器自己的证书一起发送。中间证书由浏览器已知的根 CA 签名,Web 服务器的证书由中间证书签名。这创建了一条信任链​​。但是当浏览器无法访问中间证书时,该链就会被破坏。

要在 nginx 上安装它,只需将两者结合在一起,将证书放在文件的前面:

cat my_certificate.crt intermediate.crt > certificate_for_nginx.crt

我不确定 chrome 如何管理其证书,我的印象是它管理自己的证书。但是,如果它确实使用操作系统自己的证书,那么您可以使用以下命令测试您的网站是否针对 Linux 配置良好:

openssl s_client -connect example.com:443

当我在你的网站上尝试这个时,我得到:

...
Start Time: 1583258842
Timeout   : 7200 (sec)
Verify return code: 21 (unable to verify the first certificate)
Extended master secret: yes

同样,这表明证书无法通过身份验证。通常这意味着它找不到证书,其他错误往往更具描述性。

相关内容