Git for Windows:SSL 证书问题:证书已过期
Git for Windows: SSL certificate problem: certificate has expired
我知道 Let's Encrypt made changes that may impact older clients because a root certificate would expire. See DST Root CA X3 Expiration (September 2021)。
但是,我认为这不会影响我,因为我的开发机器是最新的。
但从今天开始,我在执行 git pull
:
时收到消息
fatal: unable to access 'https://git.company.tld/project.git/': SSL certificate problem: certificate has expired
我刚刚下载了 Windows (2.33.0) 的最新 Git 并确认内置 OpenSSL 是最新的 (OpenSSL 1.1.1k 25 Mar 2021
) 应该不错。
OpenSSL Client Compatibility Changes for Let’s Encrypt Certificates
但错误似乎仍然存在。
openssl s_client -showcerts -connect git.company.tld:443
显示
CONNECTED(000001A0)
---
Certificate chain
0 s:CN = git.company.tld
i:C = US, O = Let's Encrypt, CN = R3
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----
1 s:C = US, O = Let's Encrypt, CN = R3
i:O = Digital Signature Trust Co., CN = DST Root CA X3
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----
---
Server certificate
subject=CN = git.company.tld
issuer=C = US, O = Let's Encrypt, CN = R3
---
No client certificate CA names sent
Peer signing digest: SHA512
Peer signature type: RSA
Server Temp Key: ECDH, P-256, 256 bits
---
SSL handshake has read 3058 bytes and written 443 bytes
Verification error: certificate has expired
---
New, TLSv1.2, Cipher is ECDHE-RSA-AES256-GCM-SHA384
Server public key is 2048 bit
Secure Renegotiation IS supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
SSL-Session:
Protocol : TLSv1.2
Cipher : ECDHE-RSA-AES256-GCM-SHA384
Session-ID: ...
Session-ID-ctx:
Master-Key: ...
PSK identity: None
PSK identity hint: None
SRP username: None
Start Time: 1632982992
Timeout : 7200 (sec)
Verify return code: 10 (certificate has expired)
Extended master secret: no
---
问题不在于颁发的证书本身,它没有过期并被 Chrome (Windows certificate store) 和 Firefox 接受。
我在使用 DevOps 构建代理时遇到了类似的问题。但是我可以毫无问题地访问 DevOps 服务器 Web 界面。
要解决这个问题,
- 我更新了我的 Let's Encrypt 客户端(我正在使用 Certify The Web)
- 我已经更新了我的证书
之后,DevOps 代理能够进行 Git 拉取。
显然这不是客户端问题,而是 Sophos UTM WAF(最新版本,9.707-5)提供的 Let's Encrypt 证书。
从 Apache Web 服务器提供的相同证书工作正常(openssl s_client -showcerts
响应看起来不同 -> 证书链中的更多条目)。所以这不是客户端相关的问题。
更新
解决方案是删除旧的 Lets Encrypt CA (48:50:4E:97:...)
来自 Web 服务器保护 → 证书管理 → 证书颁发机构.
客户端请求立即生效。
感谢 Sophos 论坛中的 VolkerZier 提供的提示。参见(德语)Let's Encrypt Root Zertifikat gültig bis 30.09.2021 (alte R3 / X3 Zertifikatskette).
我遇到了同样的问题,因为我是 运行 Git for Windows (2.15.0) 的旧版本。将 Git 更新到最新版本 (2.33) 后问题已解决。
原因:Git 的旧版本不接受来自 Let's Encrypt 的过期根证书。
在我的 Ubuntu 16.04.6 LTS (Xenial Xerus) 机器上,解决方案是通过 运行 以下两个命令删除 DST Root CA X3
证书:
sudo rm /usr/share/ca-certificates/mozilla/DST_Root_CA_X3.crt
sudo update-ca-certificates
我的Mac OS X 10.13.6 (High Sierra) machine, cURL(因此Git)依靠/etc/ssl/cert.pem
文件进行根CA验证。
解决方案是从文件中删除今天过期的 DST Root CA X3
证书:
Certificate:
Data:
Version: 3 (0x2)
Serial Number:
44:af:b0:80:d6:a3:27:ba:89:30:39:86:2e:f8:40:6b
Signature Algorithm: sha1WithRSAEncryption
Issuer: O=Digital Signature Trust Co., CN=DST Root CA X3
Validity
Not Before: Sep 30 21:12:19 2000 GMT
Not After : Sep 30 14:01:15 2021 GMT
Subject: O=Digital Signature Trust Co., CN=DST Root CA X3
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
Public-Key: (2048 bit)
Modulus:
00:df:af:e9:97:50:08:83:57:b4:cc:62:65:f6:90:
82:ec:c7:d3:2c:6b:30:ca:5b:ec:d9:c3:7d:c7:40:
c1:18:14:8b:e0:e8:33:76:49:2a:e3:3f:21:49:93:
ac:4e:0e:af:3e:48:cb:65:ee:fc:d3:21:0f:65:d2:
2a:d9:32:8f:8c:e5:f7:77:b0:12:7b:b5:95:c0:89:
a3:a9:ba:ed:73:2e:7a:0c:06:32:83:a2:7e:8a:14:
30:cd:11:a0:e1:2a:38:b9:79:0a:31:fd:50:bd:80:
65:df:b7:51:63:83:c8:e2:88:61:ea:4b:61:81:ec:
52:6b:b9:a2:e2:4b:1a:28:9f:48:a3:9e:0c:da:09:
8e:3e:17:2e:1e:dd:20:df:5b:c6:2a:8a:ab:2e:bd:
70:ad:c5:0b:1a:25:90:74:72:c5:7b:6a:ab:34:d6:
30:89:ff:e5:68:13:7b:54:0b:c8:d6:ae:ec:5a:9c:
92:1e:3d:64:b3:8c:c6:df:bf:c9:41:70:ec:16:72:
d5:26:ec:38:55:39:43:d0:fc:fd:18:5c:40:f1:97:
eb:d5:9a:9b:8d:1d:ba:da:25:b9:c6:d8:df:c1:15:
02:3a:ab:da:6e:f1:3e:2e:f5:5c:08:9c:3c:d6:83:
69:e4:10:9b:19:2a:b6:29:57:e3:e5:3d:9b:9f:f0:
02:5d
Exponent: 65537 (0x10001)
X509v3 extensions:
X509v3 Basic Constraints: critical
CA:TRUE
X509v3 Key Usage: critical
Certificate Sign, CRL Sign
X509v3 Subject Key Identifier:
C4:A7:B1:A4:7B:2C:71:FA:DB:E1:4B:90:75:FF:C4:15:60:85:89:10
Signature Algorithm: sha1WithRSAEncryption
a3:1a:2c:9b:17:00:5c:a9:1e:ee:28:66:37:3a:bf:83:c7:3f:
4b:c3:09:a0:95:20:5d:e3:d9:59:44:d2:3e:0d:3e:bd:8a:4b:
a0:74:1f:ce:10:82:9c:74:1a:1d:7e:98:1a:dd:cb:13:4b:b3:
20:44:e4:91:e9:cc:fc:7d:a5:db:6a:e5:fe:e6:fd:e0:4e:dd:
b7:00:3a:b5:70:49:af:f2:e5:eb:02:f1:d1:02:8b:19:cb:94:
3a:5e:48:c4:18:1e:58:19:5f:1e:02:5a:f0:0c:f1:b1:ad:a9:
dc:59:86:8b:6e:e9:91:f5:86:ca:fa:b9:66:33:aa:59:5b:ce:
e2:a7:16:73:47:cb:2b:cc:99:b0:37:48:cf:e3:56:4b:f5:cf:
0f:0c:72:32:87:c6:f0:44:bb:53:72:6d:43:f5:26:48:9a:52:
67:b7:58:ab:fe:67:76:71:78:db:0d:a2:56:14:13:39:24:31:
85:a2:a8:02:5a:30:47:e1:dd:50:07:bc:02:09:90:00:eb:64:
63:60:9b:16:bc:88:c9:12:e6:d2:7d:91:8b:f9:3d:32:8d:65:
b4:e9:7c:b1:57:76:ea:c5:b6:28:39:bf:15:65:1c:c8:f6:77:
96:6a:0a:8d:77:0b:d8:91:0b:04:8e:07:db:29:b6:0a:ee:9d:
82:35:35:10
-----BEGIN CERTIFICATE-----
MIIDSjCCAjKgAwIBAgIQRK+wgNajJ7qJMDmGLvhAazANBgkqhkiG9w0BAQUFADA/
MSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMT
DkRTVCBSb290IENBIFgzMB4XDTAwMDkzMDIxMTIxOVoXDTIxMDkzMDE0MDExNVow
PzEkMCIGA1UEChMbRGlnaXRhbCBTaWduYXR1cmUgVHJ1c3QgQ28uMRcwFQYDVQQD
Ew5EU1QgUm9vdCBDQSBYMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
AN+v6ZdQCINXtMxiZfaQguzH0yxrMMpb7NnDfcdAwRgUi+DoM3ZJKuM/IUmTrE4O
rz5Iy2Xu/NMhD2XSKtkyj4zl93ewEnu1lcCJo6m67XMuegwGMoOifooUMM0RoOEq
OLl5CjH9UL2AZd+3UWODyOKIYepLYYHsUmu5ouJLGiifSKOeDNoJjj4XLh7dIN9b
xiqKqy69cK3FCxolkHRyxXtqqzTWMIn/5WgTe1QLyNau7Fqckh49ZLOMxt+/yUFw
7BZy1SbsOFU5Q9D8/RhcQPGX69Wam40dutolucbY38EVAjqr2m7xPi71XAicPNaD
aeQQmxkqtilX4+U9m5/wAl0CAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNV
HQ8BAf8EBAMCAQYwHQYDVR0OBBYEFMSnsaR7LHH62+FLkHX/xBVghYkQMA0GCSqG
SIb3DQEBBQUAA4IBAQCjGiybFwBcqR7uKGY3Or+Dxz9LwwmglSBd49lZRNI+DT69
ikugdB/OEIKcdBodfpga3csTS7MgROSR6cz8faXbauX+5v3gTt23ADq1cEmv8uXr
AvHRAosZy5Q6XkjEGB5YGV8eAlrwDPGxrancWYaLbumR9YbK+rlmM6pZW87ipxZz
R8srzJmwN0jP41ZL9c8PDHIyh8bwRLtTcm1D9SZImlJnt1ir/md2cXjbDaJWFBM5
JDGFoqgCWjBH4d1QB7wCCZAA62RjYJsWvIjJEubSfZGL+T0yjWW06XyxV3bqxbYo
Ob8VZRzI9neWagqNdwvYkQsEjgfbKbYK7p2CNTUQ
-----END CERTIFICATE-----
从文件中删除上面的整个代码片段并保存后,错误消失了。
我在 Ubuntu 14.04 LTS (Trusty Tahr) 服务器上遇到了同样的问题。
此问题影响了来自 PHP 的 cURL 次调用,等等
示例:来自命令行上的简单 curl
,
curl https://curl.se/ca/cacert.pem
我收到证书过期消息。这是由于旧的 Let's Encrypt 证书过期。 dst-root-ca-x3-expiration-september-2021
所以,这是一个简单的工作解决方案:
编辑文件/etc/ca-certificates.conf.
查找并注释带有 !
的行,如下所示:
!mozilla/DST_Root_CA_X3.crt
或运行以下命令自动注释证书:
sudo sed -i -e 's/mozilla\/DST_Root_CA_X3\.crt/!mozilla\/DST_Root_CA_X3\.crt/g' /etc/ca-certificates.conf
保存文件
更新证书:
sudo update-ca-certificates
一切都完成了...它正在运行,不需要更改其他内容...
对于基于OpenSSL <= 1.0.2 such as Ubuntu 12.04(Precise Pangolin)的应用程序,您需要允许OpenSSL 使用备用链路径来信任远程站点。
首先你需要安装ISRG_Root_X1.crt证书并从受信任的商店中删除过期的证书:DST_Root_CA_X3.crt
这将允许像 Wget, cURL 等使用 OpenSSL 的客户端再次工作。步骤是:
安装ISRG_Root_X1证书:
sudo wget http://launchpadlibrarian.net/482351465/ca-certificates_20190110~12.04.1_all.deb
sudo dpkg -i ca-certificates_20190110~12.04.1_all.deb
要禁用 DST_Root_CA_X3 证书:
sudo vi /etc/ca-certificates.conf
然后设置:!mozilla/DST_Root_CA_X3.crt
注意:在这个文件中,以#开头的行是注释。当该行以 !是要取消选择的证书文件名。
最后 运行:
sudo update-ca-certificates
之后wget和curl就不会报错了
我发现最好的解释是视频 DST Root CAX3 Expiration Sept 2021(34 分钟)。
对于在 Ubuntu 上拥有服务器 运行 的用户,Certbot 管理证书,我已使用 ISRG Root X1 强制续订。这样,新证书不包含 DST Root CA X3 链,这对我们有用。
为此,请先检查您的 Certbot 版本是否 < 1:
sudo certbot --version
如果是这样,您必须将其删除并使用 Snap:
重新安装
sudo apt-get remove -y certbot python3-certbot-apache
sudo snap install certbot --classic
sudo ln -s /snap/bin/certbot /usr/bin/certbot
重新安装后,或者如果您的 Certbot 版本 > 1,强制更新:
sudo certbot renew --force-renewal --preferred-chain "ISRG Root X1"
我还使用 DigiCert SSL Installation Diagnostics Tool 检查我的证书,在更新之前和之后,以验证 DST X3 链是否被删除。
我(和第三世界的许多人一样)有几台 Windows XP 32/64 位机器。从周五开始,他们就给我“你的时钟提前”错误,我相信这是这个 SSL 证书失效的一部分。 (它们都完美无瑕,之前在网络上普遍存在 Chrome)。
我在 Windows XP 机器上访问的许多网站 (~40%)(对于遗留软件等很方便),都给出相同的 TIME 错误消息。
直觉告诉我:
必须获取、安装这些新证书并使其生效,这将需要时间在系统范围内传播,这意味着……在全球范围内传播。
在我们的 Windows 测试客户端上,我们必须 更新 Git 到最新版本。
从 Git 2.16.1(2) 开始,您可以使用
git update-git-for-windows
在 2.14.2 和 2.16.1 之间的版本中,命令是
git update
另请参阅:How to upgrade Git on Windows to the latest version
同样的问题。对我来说,它有助于更新 Visual Studio 2017。
验证 GnuTLS (libgnutls
) 的版本。备用链的问题已在 3.6.13-4 中修复。因此,将 GnuTLS 更新到高于此的版本可能会解决 Git.
的问题
背景故事:
(至少在 Debian 系统上)curl/wget 使用 libssl/OpenSSL,Git 通过 libcurl3-gnutls
使用 libgnutls30
。
我知道 Let's Encrypt made changes that may impact older clients because a root certificate would expire. See DST Root CA X3 Expiration (September 2021)。
但是,我认为这不会影响我,因为我的开发机器是最新的。
但从今天开始,我在执行 git pull
:
fatal: unable to access 'https://git.company.tld/project.git/': SSL certificate problem: certificate has expired
我刚刚下载了 Windows (2.33.0) 的最新 Git 并确认内置 OpenSSL 是最新的 (OpenSSL 1.1.1k 25 Mar 2021
) 应该不错。
OpenSSL Client Compatibility Changes for Let’s Encrypt Certificates
但错误似乎仍然存在。
openssl s_client -showcerts -connect git.company.tld:443
显示
CONNECTED(000001A0)
---
Certificate chain
0 s:CN = git.company.tld
i:C = US, O = Let's Encrypt, CN = R3
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----
1 s:C = US, O = Let's Encrypt, CN = R3
i:O = Digital Signature Trust Co., CN = DST Root CA X3
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----
---
Server certificate
subject=CN = git.company.tld
issuer=C = US, O = Let's Encrypt, CN = R3
---
No client certificate CA names sent
Peer signing digest: SHA512
Peer signature type: RSA
Server Temp Key: ECDH, P-256, 256 bits
---
SSL handshake has read 3058 bytes and written 443 bytes
Verification error: certificate has expired
---
New, TLSv1.2, Cipher is ECDHE-RSA-AES256-GCM-SHA384
Server public key is 2048 bit
Secure Renegotiation IS supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
SSL-Session:
Protocol : TLSv1.2
Cipher : ECDHE-RSA-AES256-GCM-SHA384
Session-ID: ...
Session-ID-ctx:
Master-Key: ...
PSK identity: None
PSK identity hint: None
SRP username: None
Start Time: 1632982992
Timeout : 7200 (sec)
Verify return code: 10 (certificate has expired)
Extended master secret: no
---
问题不在于颁发的证书本身,它没有过期并被 Chrome (Windows certificate store) 和 Firefox 接受。
我在使用 DevOps 构建代理时遇到了类似的问题。但是我可以毫无问题地访问 DevOps 服务器 Web 界面。
要解决这个问题,
- 我更新了我的 Let's Encrypt 客户端(我正在使用 Certify The Web)
- 我已经更新了我的证书
之后,DevOps 代理能够进行 Git 拉取。
显然这不是客户端问题,而是 Sophos UTM WAF(最新版本,9.707-5)提供的 Let's Encrypt 证书。
从 Apache Web 服务器提供的相同证书工作正常(openssl s_client -showcerts
响应看起来不同 -> 证书链中的更多条目)。所以这不是客户端相关的问题。
更新
解决方案是删除旧的 Lets Encrypt CA (48:50:4E:97:...)
来自 Web 服务器保护 → 证书管理 → 证书颁发机构.
客户端请求立即生效。
感谢 Sophos 论坛中的 VolkerZier 提供的提示。参见(德语)Let's Encrypt Root Zertifikat gültig bis 30.09.2021 (alte R3 / X3 Zertifikatskette).
我遇到了同样的问题,因为我是 运行 Git for Windows (2.15.0) 的旧版本。将 Git 更新到最新版本 (2.33) 后问题已解决。
原因:Git 的旧版本不接受来自 Let's Encrypt 的过期根证书。
在我的 Ubuntu 16.04.6 LTS (Xenial Xerus) 机器上,解决方案是通过 运行 以下两个命令删除 DST Root CA X3
证书:
sudo rm /usr/share/ca-certificates/mozilla/DST_Root_CA_X3.crt
sudo update-ca-certificates
我的Mac OS X 10.13.6 (High Sierra) machine, cURL(因此Git)依靠/etc/ssl/cert.pem
文件进行根CA验证。
解决方案是从文件中删除今天过期的 DST Root CA X3
证书:
Certificate:
Data:
Version: 3 (0x2)
Serial Number:
44:af:b0:80:d6:a3:27:ba:89:30:39:86:2e:f8:40:6b
Signature Algorithm: sha1WithRSAEncryption
Issuer: O=Digital Signature Trust Co., CN=DST Root CA X3
Validity
Not Before: Sep 30 21:12:19 2000 GMT
Not After : Sep 30 14:01:15 2021 GMT
Subject: O=Digital Signature Trust Co., CN=DST Root CA X3
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
Public-Key: (2048 bit)
Modulus:
00:df:af:e9:97:50:08:83:57:b4:cc:62:65:f6:90:
82:ec:c7:d3:2c:6b:30:ca:5b:ec:d9:c3:7d:c7:40:
c1:18:14:8b:e0:e8:33:76:49:2a:e3:3f:21:49:93:
ac:4e:0e:af:3e:48:cb:65:ee:fc:d3:21:0f:65:d2:
2a:d9:32:8f:8c:e5:f7:77:b0:12:7b:b5:95:c0:89:
a3:a9:ba:ed:73:2e:7a:0c:06:32:83:a2:7e:8a:14:
30:cd:11:a0:e1:2a:38:b9:79:0a:31:fd:50:bd:80:
65:df:b7:51:63:83:c8:e2:88:61:ea:4b:61:81:ec:
52:6b:b9:a2:e2:4b:1a:28:9f:48:a3:9e:0c:da:09:
8e:3e:17:2e:1e:dd:20:df:5b:c6:2a:8a:ab:2e:bd:
70:ad:c5:0b:1a:25:90:74:72:c5:7b:6a:ab:34:d6:
30:89:ff:e5:68:13:7b:54:0b:c8:d6:ae:ec:5a:9c:
92:1e:3d:64:b3:8c:c6:df:bf:c9:41:70:ec:16:72:
d5:26:ec:38:55:39:43:d0:fc:fd:18:5c:40:f1:97:
eb:d5:9a:9b:8d:1d:ba:da:25:b9:c6:d8:df:c1:15:
02:3a:ab:da:6e:f1:3e:2e:f5:5c:08:9c:3c:d6:83:
69:e4:10:9b:19:2a:b6:29:57:e3:e5:3d:9b:9f:f0:
02:5d
Exponent: 65537 (0x10001)
X509v3 extensions:
X509v3 Basic Constraints: critical
CA:TRUE
X509v3 Key Usage: critical
Certificate Sign, CRL Sign
X509v3 Subject Key Identifier:
C4:A7:B1:A4:7B:2C:71:FA:DB:E1:4B:90:75:FF:C4:15:60:85:89:10
Signature Algorithm: sha1WithRSAEncryption
a3:1a:2c:9b:17:00:5c:a9:1e:ee:28:66:37:3a:bf:83:c7:3f:
4b:c3:09:a0:95:20:5d:e3:d9:59:44:d2:3e:0d:3e:bd:8a:4b:
a0:74:1f:ce:10:82:9c:74:1a:1d:7e:98:1a:dd:cb:13:4b:b3:
20:44:e4:91:e9:cc:fc:7d:a5:db:6a:e5:fe:e6:fd:e0:4e:dd:
b7:00:3a:b5:70:49:af:f2:e5:eb:02:f1:d1:02:8b:19:cb:94:
3a:5e:48:c4:18:1e:58:19:5f:1e:02:5a:f0:0c:f1:b1:ad:a9:
dc:59:86:8b:6e:e9:91:f5:86:ca:fa:b9:66:33:aa:59:5b:ce:
e2:a7:16:73:47:cb:2b:cc:99:b0:37:48:cf:e3:56:4b:f5:cf:
0f:0c:72:32:87:c6:f0:44:bb:53:72:6d:43:f5:26:48:9a:52:
67:b7:58:ab:fe:67:76:71:78:db:0d:a2:56:14:13:39:24:31:
85:a2:a8:02:5a:30:47:e1:dd:50:07:bc:02:09:90:00:eb:64:
63:60:9b:16:bc:88:c9:12:e6:d2:7d:91:8b:f9:3d:32:8d:65:
b4:e9:7c:b1:57:76:ea:c5:b6:28:39:bf:15:65:1c:c8:f6:77:
96:6a:0a:8d:77:0b:d8:91:0b:04:8e:07:db:29:b6:0a:ee:9d:
82:35:35:10
-----BEGIN CERTIFICATE-----
MIIDSjCCAjKgAwIBAgIQRK+wgNajJ7qJMDmGLvhAazANBgkqhkiG9w0BAQUFADA/
MSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMT
DkRTVCBSb290IENBIFgzMB4XDTAwMDkzMDIxMTIxOVoXDTIxMDkzMDE0MDExNVow
PzEkMCIGA1UEChMbRGlnaXRhbCBTaWduYXR1cmUgVHJ1c3QgQ28uMRcwFQYDVQQD
Ew5EU1QgUm9vdCBDQSBYMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
AN+v6ZdQCINXtMxiZfaQguzH0yxrMMpb7NnDfcdAwRgUi+DoM3ZJKuM/IUmTrE4O
rz5Iy2Xu/NMhD2XSKtkyj4zl93ewEnu1lcCJo6m67XMuegwGMoOifooUMM0RoOEq
OLl5CjH9UL2AZd+3UWODyOKIYepLYYHsUmu5ouJLGiifSKOeDNoJjj4XLh7dIN9b
xiqKqy69cK3FCxolkHRyxXtqqzTWMIn/5WgTe1QLyNau7Fqckh49ZLOMxt+/yUFw
7BZy1SbsOFU5Q9D8/RhcQPGX69Wam40dutolucbY38EVAjqr2m7xPi71XAicPNaD
aeQQmxkqtilX4+U9m5/wAl0CAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNV
HQ8BAf8EBAMCAQYwHQYDVR0OBBYEFMSnsaR7LHH62+FLkHX/xBVghYkQMA0GCSqG
SIb3DQEBBQUAA4IBAQCjGiybFwBcqR7uKGY3Or+Dxz9LwwmglSBd49lZRNI+DT69
ikugdB/OEIKcdBodfpga3csTS7MgROSR6cz8faXbauX+5v3gTt23ADq1cEmv8uXr
AvHRAosZy5Q6XkjEGB5YGV8eAlrwDPGxrancWYaLbumR9YbK+rlmM6pZW87ipxZz
R8srzJmwN0jP41ZL9c8PDHIyh8bwRLtTcm1D9SZImlJnt1ir/md2cXjbDaJWFBM5
JDGFoqgCWjBH4d1QB7wCCZAA62RjYJsWvIjJEubSfZGL+T0yjWW06XyxV3bqxbYo
Ob8VZRzI9neWagqNdwvYkQsEjgfbKbYK7p2CNTUQ
-----END CERTIFICATE-----
从文件中删除上面的整个代码片段并保存后,错误消失了。
我在 Ubuntu 14.04 LTS (Trusty Tahr) 服务器上遇到了同样的问题。
此问题影响了来自 PHP 的 cURL 次调用,等等
示例:来自命令行上的简单 curl
,
curl https://curl.se/ca/cacert.pem
我收到证书过期消息。这是由于旧的 Let's Encrypt 证书过期。 dst-root-ca-x3-expiration-september-2021
所以,这是一个简单的工作解决方案:
编辑文件/etc/ca-certificates.conf.
查找并注释带有 !
的行,如下所示:
!mozilla/DST_Root_CA_X3.crt
或运行以下命令自动注释证书:
sudo sed -i -e 's/mozilla\/DST_Root_CA_X3\.crt/!mozilla\/DST_Root_CA_X3\.crt/g' /etc/ca-certificates.conf
保存文件
更新证书:
sudo update-ca-certificates
一切都完成了...它正在运行,不需要更改其他内容...
对于基于OpenSSL <= 1.0.2 such as Ubuntu 12.04(Precise Pangolin)的应用程序,您需要允许OpenSSL 使用备用链路径来信任远程站点。
首先你需要安装ISRG_Root_X1.crt证书并从受信任的商店中删除过期的证书:DST_Root_CA_X3.crt
这将允许像 Wget, cURL 等使用 OpenSSL 的客户端再次工作。步骤是:
安装ISRG_Root_X1证书:
sudo wget http://launchpadlibrarian.net/482351465/ca-certificates_20190110~12.04.1_all.deb
sudo dpkg -i ca-certificates_20190110~12.04.1_all.deb
要禁用 DST_Root_CA_X3 证书:
sudo vi /etc/ca-certificates.conf
然后设置:!mozilla/DST_Root_CA_X3.crt
注意:在这个文件中,以#开头的行是注释。当该行以 !是要取消选择的证书文件名。
最后 运行:
sudo update-ca-certificates
之后wget和curl就不会报错了
我发现最好的解释是视频 DST Root CAX3 Expiration Sept 2021(34 分钟)。
对于在 Ubuntu 上拥有服务器 运行 的用户,Certbot 管理证书,我已使用 ISRG Root X1 强制续订。这样,新证书不包含 DST Root CA X3 链,这对我们有用。
为此,请先检查您的 Certbot 版本是否 < 1:
sudo certbot --version
如果是这样,您必须将其删除并使用 Snap:
重新安装sudo apt-get remove -y certbot python3-certbot-apache
sudo snap install certbot --classic
sudo ln -s /snap/bin/certbot /usr/bin/certbot
重新安装后,或者如果您的 Certbot 版本 > 1,强制更新:
sudo certbot renew --force-renewal --preferred-chain "ISRG Root X1"
我还使用 DigiCert SSL Installation Diagnostics Tool 检查我的证书,在更新之前和之后,以验证 DST X3 链是否被删除。
我(和第三世界的许多人一样)有几台 Windows XP 32/64 位机器。从周五开始,他们就给我“你的时钟提前”错误,我相信这是这个 SSL 证书失效的一部分。 (它们都完美无瑕,之前在网络上普遍存在 Chrome)。
我在 Windows XP 机器上访问的许多网站 (~40%)(对于遗留软件等很方便),都给出相同的 TIME 错误消息。
直觉告诉我:
必须获取、安装这些新证书并使其生效,这将需要时间在系统范围内传播,这意味着……在全球范围内传播。
在我们的 Windows 测试客户端上,我们必须 更新 Git 到最新版本。
从 Git 2.16.1(2) 开始,您可以使用
git update-git-for-windows
在 2.14.2 和 2.16.1 之间的版本中,命令是
git update
另请参阅:How to upgrade Git on Windows to the latest version
同样的问题。对我来说,它有助于更新 Visual Studio 2017。
验证 GnuTLS (libgnutls
) 的版本。备用链的问题已在 3.6.13-4 中修复。因此,将 GnuTLS 更新到高于此的版本可能会解决 Git.
背景故事:
(至少在 Debian 系统上)curl/wget 使用 libssl/OpenSSL,Git 通过 libcurl3-gnutls
使用 libgnutls30
。