对于我们的 Scale Sets,我使用 Ubuntu Pro 20.04 映像作为我们的基础映像。在这个基础映像上,我打算安装所有软件部署工具,包括 docker、terraform、kubernetes、helm、terragrunt 等。安装是通过 shell 脚本完成的,我首先设置所有局部变量、导入环境变量、设置公司代理并复制我们的根证书。证书本身是从 复制并可从 访问/usr/local/share/ca-certificates
,另外也可以从/etc/ssl/certs
和 从 访问 /usr/local/share/ca-certificates/
。但是,当我尝试将证书加载到 ca-store 时,sudo update-ca-certificates
证书没有加载,出现错误:
Updating certificates in /etc/ssl/certs... 0 added, 0 removed; done.
奇怪的是,证书本身在所有这些位置,但不知何故无法被 Ubuntu 识别。这导致在尝试安装 terraform 和 docker 时出现以下输出:
==> azure-arm: % Total % Received % Xferd Average Speed Time Time Time Current
==> azure-arm: Dload Upload Total Spent Left Speed
==> azure-arm: 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
==> azure-arm: curl: (60) SSL certificate problem: self signed certificate in certificate chain
==> azure-arm: More details here: https://curl.haxx.se/docs/sslcerts.html
如何重现:
echo "Install root-certificates"
cat << EOF > root-ca-certificate.pem
-----BEGIN CERTIFICATE-----
....
....
....
-----END CERTIFICATE-----
EOF
sudo cp root-ca-certificate.pem /usr/local/share/ca-certificat/root-ca-certificate.crt
sudo chmod 644 /usr/local/share/ca-certificates/
sudo cp /usr/local/share/ca-certificates/root-ca-certificate.crt /usr/share/ca-certificates/
sudo chmod 644 /usr/share/ca-certificates/root-ca-certificate.crt
sudo update-ca-certificates
我已尝试解决此问题:
- 我创建了一个独立的 CA,证书本身已加载到存储区并确实存在,但仍然收到相同的错误,例如,我无法安装 terrafrom,并显示与上述相同的消息:(60) SSL 证书问题:证书链中的自签名证书
- 我尝试从基于 Ubuntu 20.04 的 WSL2 本地安装这些工具,但没有成功,并且出现了同样的错误,但我也将 CA 证书保存在了相同的位置
- 使用
--insecure
工具安装标志跳过检查证书。工具的安装使用此方法 - 我再次使用
dpkg-reconfigure -f noninteractive ca-certificates
,但未能成功将证书加载到 CA 存储中,也未能将其用于工具安装
这是 Ubuntu 的错误吗?还是我错过了任何与成功使用 CA 证书相关的信息?