我公司有一台 gitlab 服务器,我已为其获取了由公司 CA 签名的证书。由于我可以从我们域内的计算机访问该站点而不会出现 SSL 错误,因此我假设该服务器配置正确。
当我使用笔记本电脑工作时,我当然没有公司 CA 证书。例如,openssl s_client -connect my.git.server:443
会返回“错误 19,链中的自签名证书”:
0 s:/C=REDACTED
i:/DC=REDACTED/DC=REDACTED/CN=IssuingCA
1 s:/DC=REDACTED/DC=REDACTED/CN=IssuingCA
i:/CN=RootCA
2 s:/CN=RootCA
i:/CN=RootCA
因此我访问了服务器并导出了根 CA 证书。然后我将其添加到我的系统存储中:
sudo su
cp RootCA /usr/local/share/ca-certificates/extra/RootCA.crt
update-ca-certificates
现在 openssl 可以正常接受它(返回代码 0,正常)。但是,Google Chrome 仍然抱怨:
此服务器无法证明它是 my.git.server;其安全证书不受您的信任计算机操作系统。
如果不是这条消息,我会认为 Chrome 有自己的证书存储,并且不关心操作系统。但似乎很明显,证书是受到操作系统信任并且 Chrome 会引用它。
我正在运行 Ubuntu 18.04。这是 Chrome 的一个怪癖,它不尊重系统证书,还是我错过了什么?
答案1
在 Ubuntu 中,Chrome 使用自己的证书存储。您可以在 Chrome 的
设置 -> 隐私和安全 -> 管理安全密钥 -> 管理证书 -> 授权机构
请注意,更新 ubuntu 系统证书存储update-ca-certificates
对 Chrome 没有影响。