LLl*_*nYP 2 google-chrome ssl-certificate
我有一个在我们公司运行的 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
Run Code Online (Sandbox Code Playgroud)
所以我访问了服务器并导出了根 CA 证书。然后我将它添加到我的系统存储中:
sudo su
cp RootCA /usr/local/share/ca-certificates/extra/RootCA.crt
update-ca-certificates
Run Code Online (Sandbox Code Playgroud)
现在 openssl 接受它就好了(返回代码 0,好的)。但是,谷歌浏览器仍然抱怨:
该服务器无法证明它是 my.git.server;它的安全证书不受您计算机操作系统的信任。
如果不是这条消息,我会认为 Chrome 有自己的证书存储并且不关心操作系统。但似乎很清楚,该证书是由受信任的操作系统和Chrome是指它。
我正在运行 Ubuntu 18.04。这只是 Chrome 的一个怪癖,它不尊重系统证书,还是我遗漏了什么?
小智 7
在 Ubuntu 中,Chrome 使用自己的证书存储。您可以在 Chrome 中导入您的 RootCA.crt
设置 -> 隐私和安全 -> 管理安全密钥 -> 管理证书 -> 权限
请注意,更新 ubuntu 系统证书存储update-ca-certificates
对 Chrome 没有影响。