由于根证书过期,gitlab-runner 无法克隆
gitlab-runner cannot clone due to expired root certificate
我在 gitlab 上克隆时出现这个错误 ci:
unable to access 'https://gitlab-ci-token:[secure]@git.mydomain.com/mydomain/api.git/': server certificate verification failed. CAfile: /etc/ssl/certs/ca-certificates.crt CRLfile: none.
我的根 CA 已于今天 30 日到期,因此必须已从我的钥匙串中删除。
我已经升级了我的证书 (debian),一切似乎都很好,除了这个错误在我的 dockerized gitlab-runner
.
中没有消失
我该如何解决?
这是服务器端的问题,需要通过更换 CA 证书链来解决。
因为Sectigo知道这个根证书很快就会过期,几年前,他们创建了一个新的根证书,并在所有主要的浏览器供应商和OS制造商处注册。但是,由于许多较旧的系统不升级其证书,因此这个新的根 CA 由较旧的 CA 签名,这个过程称为 cross-signing。这允许人们使用新的根来颁发证书,同时保持与旧系统的兼容性。
今天 Internet 上的任何系统都无法再处理遗留根目录,因为它现在已过期,因此不再使用它没有任何好处。
一些 TLS 库可以识别出证书链接到受信任的根证书并忽略额外的、过期的根证书,但有些库不能。因此,您的证书链中有旧的 AddTrust 外部根 CA 证书这一事实可能会破坏其中一些 TLS 库,这就是这里发生的情况。
Sectigo 有 documentation on this issue。您想要删除 AddTrust CA 证书并确保您使用的 UserTrust 或 COMODO root 是自签名的。如果您使用的是 Debian 或 Ubuntu 系统,您可以在 /etc/ssl/certs
.
中找到合适的根证书
更好的是,您可以完全删除根证书,只包括中间证书,因为在创建 TLS 连接时实际上不需要根证书,因为客户端必须已经拥有它。
在 debian 9 中,我通过删除以下证书解决了问题。
sudo rm /usr/share/ca-certificates/mozilla/DST_Root_CA_X3.crt
sudo update-ca-certificates
我在 gitlab 上克隆时出现这个错误 ci:
unable to access 'https://gitlab-ci-token:[secure]@git.mydomain.com/mydomain/api.git/': server certificate verification failed. CAfile: /etc/ssl/certs/ca-certificates.crt CRLfile: none.
我的根 CA 已于今天 30 日到期,因此必须已从我的钥匙串中删除。
我已经升级了我的证书 (debian),一切似乎都很好,除了这个错误在我的 dockerized gitlab-runner
.
我该如何解决?
这是服务器端的问题,需要通过更换 CA 证书链来解决。
因为Sectigo知道这个根证书很快就会过期,几年前,他们创建了一个新的根证书,并在所有主要的浏览器供应商和OS制造商处注册。但是,由于许多较旧的系统不升级其证书,因此这个新的根 CA 由较旧的 CA 签名,这个过程称为 cross-signing。这允许人们使用新的根来颁发证书,同时保持与旧系统的兼容性。
今天 Internet 上的任何系统都无法再处理遗留根目录,因为它现在已过期,因此不再使用它没有任何好处。
一些 TLS 库可以识别出证书链接到受信任的根证书并忽略额外的、过期的根证书,但有些库不能。因此,您的证书链中有旧的 AddTrust 外部根 CA 证书这一事实可能会破坏其中一些 TLS 库,这就是这里发生的情况。
Sectigo 有 documentation on this issue。您想要删除 AddTrust CA 证书并确保您使用的 UserTrust 或 COMODO root 是自签名的。如果您使用的是 Debian 或 Ubuntu 系统,您可以在 /etc/ssl/certs
.
更好的是,您可以完全删除根证书,只包括中间证书,因为在创建 TLS 连接时实际上不需要根证书,因为客户端必须已经拥有它。
在 debian 9 中,我通过删除以下证书解决了问题。
sudo rm /usr/share/ca-certificates/mozilla/DST_Root_CA_X3.crt
sudo update-ca-certificates