我的公司给了我一个文件company_CA.crt
,我需要使用它来访问我们的一个客户的网站。
当我尝试在 macOS 上添加它时,我所要做的就是单击该文件,然后在导入后将其设置为“始终信任”。
我想在 Ubuntu 上做同样的事情,所以我遵循了以下步骤:
- 将 CRT 文件复制到
usr/local/share/ca-certificates/my_company
- 跑步
sudo update-ca-certificates
但我仍然无法打开网站。我是不是错过了什么步骤?
答案1
检查您的系统是否已知您的 customer_web_site 的 CA 根证书。
$ curl -I https://customer_web_site curl: (77) Problem with the SSL CA cert (path? access rights?)
系统中确实不知道 customer_web_site 服务器的 CA 证书。
文件 company_CA.crt 必须是 CRT 格式。(在本例中似乎是这样的)如果它是 PEM 格式,那么你必须转换它(openssl x509 -in xxxx.pem -inform PEM -out xxxx.crt
- 在 Ubuntu 中安装 CA 文件
将 company_CA.crt 文件复制到 /usr/share/ca-certificates 中的新目录 extra
让 ubuntu 获取新的 CA 证书并将其安装在 Linux 系统中
sudo dpkg-reconfigure ca-certificates
会出现一个菜单。选中“询问”选项,提示每个新的 CA 证书。您将看到您的新证书。
额外的/company_CA.crt
按空格键选择新的 CA 证书文件并选择确定。
最后,你应该看到类似这样的内容:
已添加 1 个,已删除 0 个;已完成。正在 /etc/ca-certificates/update.d 中运行钩子...
检查 curl 是否在未指定 CA 证书文件的情况下工作
$ curl -I https://customer_web_site
HTTP/1.1 200 OK
Date: Thu, 06 Sep 2018 18:08:26 GMT
Server: Apache/2.4.18 (Ubuntu)
Last-Modified: Fri, 27 Jul 2018 12:09:02 GMT
ETag: "2c39-571f9fa3671da"
Accept-Ranges: bytes
Content-Length: 11321
Vary: Accept-Encoding
Content-Type: text/html
有用。
如果您想了解有关自签名证书的更多信息以及如何使用它们,请查看我的github。