默认 CA 证书包位置

默认 CA 证书包位置

我需要将 .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非常好的链接,解释了如何将其添加到几个流行的操作系统中。

相关内容