我有一个运行在我们公司的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,ok)。然而,谷歌Chrome仍在抱怨:
此服务器无法证明它是my.git.server;其安全证书不受计算机操作系统的信任。
如果没有这条信息,我会想到Chrome有自己的证书存储库,不关心操作系统。但是很明显,这个证书是由操作系统信任的,Chrome是指它。
我在运行Ubuntu 18.04。这只是Chrome的一个怪癖,它不尊重系统证书,还是我遗漏了什么?
发布于 2019-08-24 22:09:28
在Ubuntu中,Chrome使用自己的证书存储。您可以在Chrome中导入您的RootCA.crt
设置->隐私和安全->管理安全密钥->管理证书->权限
请注意,通过update-ca-certificates
更新ubuntu系统证书存储对Chrome没有影响。
https://serverfault.com/questions/946756
复制