如何在CURL中设置证书

12

为了获得成功的响应,我正在使用 curl --cacert <ca.pem 路径> ...,但如何在mac中的配置文件中设置ca.pem路径,以便每次不必指定证书路径,可以直接使用 curl ...

1个回答

25
在您的系统上,您可以设置环境变量指向这些文件。
尝试:
export SSL_CERT_FILE=/path/to/ca.pem

还有一个SSL_CERT_DIR环境变量可以用来指定包含证书的目录。

您可以将此添加到您的.bashrc.bash_profile文件中,以使其永久。

使用curl编译时可以通过传递--with-ca-path=DIRECTORY来更改此设置,但我建议保持原样。

更好的方法是查找您的操作系统和/或OpenSSL正在使用的CA路径/文件,并在那里添加相关证书。 我不知道它们在Mac上位于何处,但您应该有一个受信任的CA证书目录,curl正在使用该目录进行验证(可能在/ etc的某个地方)。


我想知道这些是否“相加”或互相覆盖。我在一个规范位置有CA证书,这个位置可能正在被访问,但是该捆绑包不包含足够的证书,因此我有一个额外的文件。我不允许写入该捆绑包,因此我必须提供一个额外的路径。SSL_CERT_DIRSSL_CERT_FILE都会被检查吗?额外的位置以及规范位置也会被检查吗? - NeilG
1
如果你在curl命令中添加--trace-ascii <tracefile>,它将会记录你的尝试并包含它正在使用的CA证书路径,如果你还不知道它们在哪里的话。 - NeilG
我猜你可以将所有可读的证书连接起来放到自己的位置,然后只指定一个给 curl - NeilG

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接