我需要将 .pem 证书文件添加到我的默认 CA 证书包中,但我不知道默认 CA 证书包保存在哪里。
我需要将我的新 .pem 文件附加到此默认包中。我宁愿这样做,也不愿使用 --capath 指定我自己的位置
cURL 显然知道要查找的位置,但我没有看到任何可以显示位置的 cURL 命令。是否有可以显示此位置的命令?我该如何找到它?
根据 cURL:
将服务器的 CA 证书添加到现有的默认 CA 证书包中。可以通过运行 configure 并使用 --with-ca-bundle 选项来更改所用 CA 包的默认路径,该选项指出您选择的路径。
谢谢
答案1
curl
一起跑步strace
可能会给你一个线索。
strace curl https://www.google.com |& grep open
有很多输出,但就在接近尾声时我看到:
打开(“/etc/ssl/certs/578d5c04.0”,O_RDONLY)= 4
这/etc/ssl/certs/
是存储我的证书的地方。
答案2
curl 的“bin/”中应该有一个程序“curl-config”,即“curl”二进制文件所在的位置。
./curl-config--ca
提供 ca 包安装路径。
我刚刚做了一个 whatis curl-config:“获取有关 libcurl 安装的信息”,所以我猜测只有在安装了 libcurl 后它才可用,不过我认为这是标准的。
答案3
我找到了一个简单的方法:--cacert
使用错误的文件名,输出将显示路径。
例子:
~$ curl --cacert non_existing_file https://www.google.com
curl: (77) error setting certificate verify locations:
CAfile: non_existing_file
CApath: /etc/ssl/certs
答案4
Linux(Ubuntu、Debian)
将您的 CA 复制到目录 /usr/local/share/ca-certificates/
sudo cp foo.crt /usr/local/share/ca-certificates/foo.crt
更新 CA 商店
sudo update-ca-certificates
删除您的 CA 并更新 CA 存储:
sudo update-ca-certificates --fresh
Linux(CentOs 6)
安装 ca-certificates 包:
yum install ca-certificates
启用动态 CA 配置功能:update-ca-trust force-enable 将其作为新文件添加到/etc/pki/ca-trust/source/anchors/
:
cp foo.crt /etc/pki/ca-trust/source/anchors/
update-ca-trust extract
Linux(CentOs 5)
将您信任的证书附加到文件/etc/pki/tls/certs/ca-bundle.crt
cat foo.crt >>/etc/pki/tls/certs/ca-bundle.crt
https://manuals.gfi.com/en/kerio/connect/content/server-configuration/ssl-certificates/adding-trusted-root-certificates-to-the-server-1605.html非常好的链接,解释了如何将其添加到几个流行的操作系统中。