Ubuntu 10.04 / CURL:如何修复/更新CA Bundle?


17

我最近将服务器以及所有软件从8.04升级到了10.04。

根据我在网上找到的信息,似乎新版本的CURL不包含CA捆绑包,因此无法验证您所连接的服务器的证书是否由有效的授权机构签名。

实际错误是:

CURL错误:SSL证书问题,请验证CA证书是否正确。
详细信息:错误:14090086:SSL例程:SSL3_GET_SERVER_CERTIFICATE:
证书验证失败 

我发现一些地方建议您在调用CURL时通过设置选项来手动指定一个CA文件或完全禁用该检查,但是我宁愿全局解决此问题,而不必修改每个应用程序的CURL调用。

有没有办法在整个服务器范围内解决CURL的CA问题,以便所有现有的应用程序代码都可以按原样工作而无需进行修改?

Answers:


17

我遇到了同样的麻烦,经过一番摸索后发现,您可以直接从curl开发者站点下载一整套准备在ubuntu上进行curl的CA证书。

cd /etc/ssl/certs
sudo wget http://curl.haxx.se/ca/cacert.pem

现在,curl使用最新的捆绑包,您可以使用了。


1
之后,我必须更新:update-ca-certificates -f
Grain

9

Ubuntu 12.04从命令行运行curl以获取github中的aws命令行工具时也遇到了类似的问题。我发现是否按以下方式运行命令行:

curl https://raw.github.com/timkay/aws/master/aws -o aws --cacert /etc/ssl/certs/ca-certificates.crt

它会工作。但是尝试设置CURL_CA_BUNDLE环境变量,以便可以避免使用“ cacert”自变量。最终更新ca证书似乎可以解决此问题:

sudo update-ca-certificates

附带说明一下,有一点我从curl.haxx.se更新了ca-certs,它不能解决问题,但可能已经相关。(sudo wget http://curl.haxx.se/ca/cacert.pem/etc/ssl/certs)运行。


为我链接404。这有效:curl.haxx.se/ca/cacert.pem
dave1010 2013年

2
嗯 似乎很狡猾,无法通过HTTPS 来获取包含此类证书的文件。
马修·申克尔

5

通常,没有唯一实现且针对OpenSSL编译的软件将引用通常位于的系统范围内的ca-bundle.crt /usr/share/ssl/certs

在Ubuntu中,位置可能有所不同,但OpenSSL软件包应包含ca-bundle文件。

CURL具有多种选项来指定其验证证书的方式。

  • CURL_CA_BUNDLEca-bundle文件位置的环境变量。
  • --capath允许您指定CA证书所在的目录。(覆盖CURL_CA_BUNDLE
  • --cacert 允许您指定CA证书文件。

在我的CentOS服务器上,我可以运行以下命令来识别CURL使用的ca-bundle路径:

$ curl-config --ca
/usr/share/ssl/certs/ca-bundle.crt

1
已安装Open SSL。我在/ etc / ssl / certs /中有一个“ ca-certificates.crt”文件,看起来像是一堆连接在一起的证书,但是我想CURL没看到吗?CURL是否具有CA-Bundle的配置设置?
尼克

您确定它不是要验证的证书类型吗?较新的证书技术(例如扩展验证证书)经常需要ca-bundle更新,因为根证书相对较新。也查看我即将进行的编辑。
华纳2010年

curl-config在Ubuntu上似乎不是有效的命令。如何设置CURL_CA_BUNDLE?
尼克(Nick)

libcurl3-openssl-dev根据快速的Internet搜索,它似乎是该软件包的一部分。 CURL_CA_BUNDLE只是一个环境变量。用bash表示CURL_CA_BUNDLE=/path/to/file
华纳2010年

好的,已经安装了软件包,但是“ curl-config --ca”会产生一个空行。我尝试使用'CURL_CA_BUNDLE =“ / etc / ssl / certs / ca-certificates.crt”“设置变量。但是“ curl-config --ca”之后仍然会产生一个空白行。
尼克(Nick)
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.