如何在 RedHat 上更新 cURL CA 包?

如何在 RedHat 上更新 cURL CA 包?

我遇到的问题:与我的 cURL 版本捆绑在一起的 CA 包已过时。

curl: (60) SSL certificate problem, verify that the CA cert is OK. Details:
error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
More details here: http://curl.haxx.se/docs/sslcerts.html

阅读文档对我没有帮助,因为我不明白我需要做什么或如何做。我正在运行 RedHat,需要更新 CA 包。我需要做什么才能在 RedHat 上更新我的 CA 包?

答案1

对于 RHEL 6 或更高版本,你应该使用更新 CA 信任,正如 lzap 在下面的回答中所描述的那样。

--- 对于旧版本的 Fedora、CentOS、Redhat:

Curl 正在使用存储在 /etc/pki/tls/certs/ca-bundle.crt 中的系统默认 CA 包。在更改它之前,请复制该文件,以便在需要时恢复系统默认设置。您可以简单地将新的 CA 证书附加到该文件,也可以替换整个包。

你还想知道在哪里获取证书吗?我(和其他人)推荐 curl.se/ca 。一行代码:

curl https://curl.se/ca/cacert.pem -o /etc/pki/tls/certs/ca-bundle.crt

Fedora Core 2 的位置是/usr/share/ssl/certs/ca-bundle.crt

答案2

在 RHEL 6+ 系统上建议使用更新 CA 信任工具,现在已默认安装。

# cat /etc/pki/ca-trust/source/README 
This directory /etc/pki/ca-trust/source/ contains CA certificates and 
trust settings in the PEM file format. The trust settings found here will be
interpreted with a high priority - higher than the ones found in 
/usr/share/pki/ca-trust-source/.

=============================================================================
QUICK HELP: To add a certificate in the simple PEM or DER file formats to the
            list of CAs trusted on the system:

            Copy it to the
                    /etc/pki/ca-trust/source/anchors/
            subdirectory, and run the
                    update-ca-trust
            command.

            If your certificate is in the extended BEGIN TRUSTED file format,
            then place it into the main source/ directory instead.
=============================================================================

Please refer to the update-ca-trust(8) manual page for additional information

因此,您只需将 crt 文件拖放到/etc/pki/ca-trust/source/anchors/并运行该工具即可。工作完成。这样做很安全,您无需进行任何备份。完整的手册页可在此处找到:https://www.mankier.com/8/update-ca-trust

答案3

可能取决于 Redhat 的版本。您可以通过以下操作找到哪个包实际更新了文件:

rpm -qf /etc/pki/tls/certs/ca-bundle.crt

我的结果表明openssl-0.9.8e-12.el5需要更新。

如果您的发行版中没有更新的证书,则必须按照 Nada 的回答手动更新。

答案4

RHEL 提供 Mozilla CA 证书作为软件包的一部分(如果尚未安装,请ca-certificates安装)。要告诉 cURL 使用这些证书,请使用如下参数。yum--cacert

curl --cacert /etc/ssl/certs/ca-bundle.crt https://google.com/

相关内容