存储在/etc/ssl/cert.pem中的证书今天在我的Mojave计算机上过期,这给我的curl命令带来了问题。有什么要更新的吗?我发现我的Catalina电脑有一个更新的证书。我能把它复制到我的Mojave电脑上吗?
发布于 2020-05-30 20:25:45
我想你对AddTrust CA有问题
大多数用例所需做的事情,包括为现代客户端或服务器系统服务的证书,不需要采取任何行动,无论您是否颁发了交叉链接到AddTrust根目录的证书。
截至2020年4月30日:对于依赖于非常老系统的业务流程,Sectigo为交叉签名提供了一个新的遗留根,即“AAA证书服务”根(默认情况下在证书包中)。但是,对于任何依赖于非常老的遗留系统的进程,请使用非常谨慎的方法。没有收到支持更新根(如Sectigo的COMODO根)所需的更新的系统将不可避免地缺少其他必要的安全更新,应该被视为不安全的。如果您仍想交叉签名到AAA证书服务根目录,请直接与Sectigo联系.
发布于 2021-10-02 03:08:58
昨天,“让我们加密DST根CA X3根证书”过期了,这导致了类似的问题:curl显示了一个SSL证书问题:当尝试使用新的“让我们加密ISRG X1证书”访问网站时,证书已过期。
在macOS Mojave上(可能还有其他的,但这正是我所使用的),在验证/etc/ssl/cert.pem连接时,默认的curl使用/etc/ssl/cert.pem中的证书(您可以通过运行curl -v https://example.com 2>&1 | grep CAfile来确认这一点)。
最简单的解决方法是从/etc/ssl/cert.pem文件中删除过期的根证书,前提是它的替换已经存在于文件中。这足以修复过期的DST X3,因为替换它的ISRG X1已经存在于/etc/ssl/cert.pem文件中。将### Digital Signature Trust Co.中的所有行删除为-----END CERTIFICATE-----。
如果需要用更新的证书完全替换/etc/ssl/cert.pem,可以将其替换为从macOS System导出的证书:
/etc/ssl/cert.pem
sudo cp /etc/ssl/cert.pem{,-orig}/etc/ssl/cert.pem的
security find-certificate -a -p /System/Library/Keychains/SystemRootCertificates.keychain | sudo tee /etc/ssl/cert.pem >/dev/null或者,您可以告诉curl使用不同的证书文件,如下所示:
curl -I --cacert /path/to/certificates.pem https://example.com/或使用CURL_CA_BUNDLE=/path/to/certificates.pem环境变量配置此文件的位置。
发布于 2021-10-04 06:14:22
我试过Quinn Comendant's solution,但没成功。
通过安装OpenSSL并将cert.pem文件链接到OpenSSL下的文件( MacOS Mojave中),我最终解决了这个问题:
$ sudo cp /etc/ssl/cert.pem /etc/ssl/cert.pem.bak
$ brew install openssl
$ brew info openssl
openssl@3: stable 3.0.0 (bottled) [keg-only]
Cryptography and SSL/TLS Toolkit
https://openssl.org/
/usr/local/Cellar/openssl@3/3.0.0 (6,415 files, 28MB)
Poured from bottle on 2021-10-04 at 11:13:17
From: https://github.com/Homebrew/homebrew-core/blob/HEAD/Formula/openssl@3.rb
License: Apache-2.0
==> Caveats
A CA file has been bootstrapped using certificates from the system
keychain. To add additional certificates, place .pem files in
/usr/local/etc/openssl@3/certs
...从这里我们将知道配置在/usr/local/etc/openssl@3中,然后:
$ sudo rm /etc/ssl/cert.pem
$ sudo ln -s /usr/local/etc/openssl@3/cert.pem /etc/ssl/cert.pem这解决了我的问题。
https://stackoverflow.com/questions/62103109
复制相似问题