我的 FreeBSD 11 提供:
[root@freebsd11 ~]# pkg install perl
Updating FreeBSD repository catalogue...
Certificate verification failed for /O=Digital Signature Trust Co./CN=DST Root CA X3
34406394360:error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed:/usr/src/crypto/openssl/ssl/s3_clnt.c:1269:
Certificate verification failed for /O=Digital Signature Trust Co./CN=DST Root CA X3
34406394360:error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed:/usr/src/crypto/openssl/ssl/s3_clnt.c:1269:
Certificate verification failed for /O=Digital Signature Trust Co./CN=DST Root CA X3
34406394360:error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed:/usr/src/crypto/openssl/ssl/s3_clnt.c:1269:
Certificate verification failed for /O=Digital Signature Trust Co./CN=DST Root CA X3
34406394360:error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed:/usr/src/crypto/openssl/ssl/s3_clnt.c:1269:
Certificate verification failed for /O=Digital Signature Trust Co./CN=DST Root CA X3
34406394360:error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed:/usr/src/crypto/openssl/ssl/s3_clnt.c:1269:
Certificate verification failed for /O=Digital Signature Trust Co./CN=DST Root CA X3
34406394360:error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed:/usr/src/crypto/openssl/ssl/s3_clnt.c:1269:
pkg: https://pkg.freebsd.org/FreeBSD:11:amd64/latest/meta.txz: Authentication error
repository FreeBSD has no meta file, using default settings
Certificate verification failed for /O=Digital Signature Trust Co./CN=DST Root CA X3
34406394360:error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed:/usr/src/crypto/openssl/ssl/s3_clnt.c:1269:
Certificate verification failed for /O=Digital Signature Trust Co./CN=DST Root CA X3
34406394360:error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed:/usr/src/crypto/openssl/ssl/s3_clnt.c:1269:
Certificate verification failed for /O=Digital Signature Trust Co./CN=DST Root CA X3
34406394360:error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed:/usr/src/crypto/openssl/ssl/s3_clnt.c:1269:
pkg: https://pkg.freebsd.org/FreeBSD:11:amd64/latest/packagesite.pkg: Authentication error
Certificate verification failed for /O=Digital Signature Trust Co./CN=DST Root CA X3
34406394360:error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed:/usr/src/crypto/openssl/ssl/s3_clnt.c:1269:
Certificate verification failed for /O=Digital Signature Trust Co./CN=DST Root CA X3
34406394360:error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed:/usr/src/crypto/openssl/ssl/s3_clnt.c:1269:
Certificate verification failed for /O=Digital Signature Trust Co./CN=DST Root CA X3
34406394360:error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed:/usr/src/crypto/openssl/ssl/s3_clnt.c:1269:
pkg: https://pkg.freebsd.org/FreeBSD:11:amd64/latest/packagesite.txz: Authentication error
Unable to update repository FreeBSD
Error updating repositories!
我认为这是由过期的证书引起的,但我不知道如何修复它。
是的,Let's Encrypt 历史上使用的 DST Root CA X3 证书已在一年半前过期;请参阅https://letsencrypt.org/docs/dst-root-ca-x3-expiration-september-2021/并在此处链接https://letsencrypt.org/2020/12/21/extending-android-compatibility.html . (我们在几个 Stacks 上有大约一百个问题——据我回忆,unix、apple、security、SF、SU、SO,也许更多——大部分在一两周内,但有些在 2 或 3 个月后才出现;你是在外星球度假?)
openssl version
检查您拥有的 OpenSSL(程序:do)和 ca_root_nss(程序包)的版本。如果您的根 CA 早于 2017 年左右,您的信任文件中可能没有 ISRG 根(可能是 /usr/local/share/certs/ca-root-nss.crt 由包提供)并且需要添加它-- 可能你需要下载到一个更新的系统,然后复制到你废弃的系统;它必须是 PEM 格式,但如果你得到 DER,只需使用它openssl x509 -inform der -outform pem <this >that
来转换它,可选择添加-text -fingerprint
以获得有用的人类可读序言。如果您的 OpenSSL 低于 1.1.0 并且您在信任文件中有现在已经过时的 DST-X3 根目录,您几乎肯定会为 2020 年之前构建的系统这样做,您需要删除它(使用任何方便的编辑器)以避免 OpenSSL LE 页面提到的错误。
一如既往地在修改任何关键文件之前保存备份。一旦您的系统开始工作,请查看是否有包含这些更改的官方 ca_root_nss 更新,如果有,请使用它而不是手动补丁。
我已经回复了你的GitHub 问题,但请参阅此脚本以了解如何更新系统上的 ca-bundle 文件。此特定脚本使用 Mozilla CA 存储库作为其源,并更新以下文件。
/etc/ssl/cert.pem
/usr/local/openssl/cert.pem
/usr/local/etc/ssl/cert.pem
/usr/local/share/certs/ca-root-nss.crt
根据您安装的内容,您的文件系统中其他地方可能还有其他捆绑文件也需要更新。