Sectigo/Comodo 根证书过期的解决办法
6月1日 更新:
可不重新签发证书,仅需替换中级证书 即可
中级证书下载
请下载后,解压,找到对应的中级证书, 例如 DV证书,请使用里面的 DV.ca-bundle 文件,该文件可用记事本打开,复制里面的文件,替换服务器上对应的中级证书
----------------------------------------------------------------------
AddTrust External CA 是一个存在时间很长的根证书 , 即将于5月底到期,在这个根证书到期之后, 客户端和浏览器将切换到证书链上的另外一个根证书 USERTRUST CA ,这个根证书的到期时间在 2038年 ,这个是经 AddTrust External CA交叉签名后的签发的根证书,
AddTrust External CA Root (根证书 即将到期)
- - ->USERTrust RSA Certification Authority (交叉签名根证书 2010年 - 2038年到)
- - ->Sectigo RSA Domain Validation Secure Server CA
- - ->*.test.certificatetest.com
Sectigo根证书 USERTrust RSA Certification Authority 目前已经植入到系统 或浏览器 的下列版本, 以及更新的版本
Apple:
macOS Sierra 10.12.1 Public Beta 2
iOS 10
Microsoft:
Windows XP (via Automatic Root Update; note that ECC wasn't supported by Windows until Vista)
Windows Phone 7
Mozilla:
Firefox 3.0.4 (COMODO ECC Certification Authority)
Firefox 36 (the other 3 roots)
Google:
Android 2.3 (COMODO ECC Certification Authority)
Android 5.1 (the other 3 roots)
Oracle:
Java JRE 8u51
Opera:
[Browser release on December 2012]
360 Browser:
SE 10.1.1550.0 and Extreme browser 11.0.2031.0
可能受到影响的系统:
目前主流使用的各种版本操作系统,浏览器不会任何影响。
可能受到影响的是小部分长期没有更新的老旧操作系统,一些无法更新的老旧嵌入式设备。
操作系统厂商会不定期发布各种安全,功能性方面的更新补丁, 这里面也包括系统的根证书库,上面列出的各种系统平台,其中部分老的操作系统是通过系统更新的方式植入这个根证书的, 如果有的老版本操作系统长期没更新,那就是可能系统没有这些新的根证书 ,这种情况下,在浏览器的证书链看到的根证书就是 addtrust external CA , 那么在2020年5月份之后,访问网站可能就会有问题,提示错误 。
解决办法:
通常情况下,您无需进行任何操作,在旧的根证书过期后,浏览器会使用 交叉签名根证书 USERTrust RSA Certification Authority 或其他相应的根证书,但是如果您的系统或设备无法更新根证书库的导致访问异常,您可以采用以下方法解决:
,
sectigo已经启用AAA Certificate Services根证书
Sectigo除了 这个AddTrust External CA Root 这个老的根证书外,还有另外一个比较老的根证书 AAA Certificate Services 2028到期 ,Sectigo已经启用一个使用 AAA Certificate Services根证书的交叉签名证书 ,就是说对于可能在5月份之后会有问题的部分长期不更新的老旧操作系统访问安装有Sectigo证书的网站,有办法解决由于根证书到期造成的问题,但是需要把已经在使用的 由 AddTrust External CA Root 签发的证书重新签发一次,替换服务器上目前在使用的证书。
AAA Certificate Services根证书支持更老的系统平台:
Apple iOS 3.
Apple macOS 10.4.
Google Android 2.3.
Mozilla Firefox 1.
Oracle Java JRE 1.5.0_08.
CURL 命令可能碰到问题
如果您的服务器上相关应用使用CURL 命令 访问的域名因为sectigo根证书过期导致出错,您可以删除客户端上的这个过期的根证书
常见操作系统的根证书库:
"/etc/ssl/certs/ca-certificates.crt", // Debian/Ubuntu/Gentoo etc.
"/etc/pki/tls/certs/ca-bundle.crt", // Fedora/RHEL 6
"/etc/ssl/ca-bundle.pem", // OpenSUSE
"/etc/pki/tls/cacert.pem", // OpenELEC
"/etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem", // CentOS/RHEL 7
"/etc/ssl/cert.pem", // Alpine Linux
找到根证书库文件,删除 AddTrust External CA 这个过期的根证书代码 ,该证书代码如下
-----BEGIN CERTIFICATE-----
MIIENjCCAx6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBvMQswCQYDVQQGEwJTRTEU
MBIGA1UEChMLQWRkVHJ1c3QgQUIxJjAkBgNVBAsTHUFkZFRydXN0IEV4dGVybmFs
IFRUUCBOZXR3b3JrMSIwIAYDVQQDExlBZGRUcnVzdCBFeHRlcm5hbCBDQSBSb290
MB4XDTAwMDUzMDEwNDgzOFoXDTIwMDUzMDEwNDgzOFowbzELMAkGA1UEBhMCU0Ux
FDASBgNVBAoTC0FkZFRydXN0IEFCMSYwJAYDVQQLEx1BZGRUcnVzdCBFeHRlcm5h
bCBUVFAgTmV0d29yazEiMCAGA1UEAxMZQWRkVHJ1c3QgRXh0ZXJuYWwgQ0EgUm9v
dDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALf3GjPm8gAELTngTlvt
H7xsD821+iO2zt6bETOXpClMfZOfvUq8k+0DGuOPz+VtUFrWlymUWoCwSXrbLpX9
uMq/NzgtHj6RQa1wVsfwTz/oMp50ysiQVOnGXw94nZpAPA6sYapeFI+eh6FqUNzX
mk6vBbOmcZSccbNQYArHE504B4YCqOmoaSYYkKtMsE8jqzpPhNjfzp/haW+710LX
a0Tkx63ubUFfclpxCDezeWWkWaCUN/cALw3CknLa0Dhy2xSoRcRdKn23tNbE7qzN
E0S3ySvdQwAl+mG5aWpYIxG3pzOPVnVZ9c0p10a3CitlttNCbxWyuHv77+ldU9U0
WicCAwEAAaOB3DCB2TAdBgNVHQ4EFgQUrb2YejS0Jvf6xCZU7wO94CTLVBowCwYD
VR0PBAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wgZkGA1UdIwSBkTCBjoAUrb2YejS0
Jvf6xCZU7wO94CTLVBqhc6RxMG8xCzAJBgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRU
cnVzdCBBQjEmMCQGA1UECxMdQWRkVHJ1c3QgRXh0ZXJuYWwgVFRQIE5ldHdvcmsx
IjAgBgNVBAMTGUFkZFRydXN0IEV4dGVybmFsIENBIFJvb3SCAQEwDQYJKoZIhvcN
AQEFBQADggEBALCb4IUlwtYj4g+WBpKdQZic2YR5gdkeWxQHIzZlj7DYd7usQWxH
YINRsPkyPef89iYTx4AWpb9a/IfPeHmJIZriTAcKhjW88t5RxNKWt9x+Tu5w/Rw5
6wwCURQtjr0W4MHfRnXnJK3s9EK0hZNwEGe6nQY1ShjTK3rMUUKhemPR5ruhxSvC
Nr4TDea9Y355e6cJDUCrat2PisP29owaQgVR1EX1n6diIWgVIEM8med8vSTYqZEX
c4g/VhsxOBi0cQ+azcgOno4uG+GMmIPLHzHxREzGBHNJdmAPx/i9F4BrLunMTA5a
mnkPIAou1Z5jJh5VkpTYghdae9C8x49OhgQ=
-----END CERTIFICATE-----
例如 : debian 操作系统的操作方式:
找到 /etc/ssl/certs/ca-certificates.crt 这个文件,打开,并找到以上证书代码,把它删掉 ,保存
您可能还需要删除与根证书库文件相同目录下的这个过期的根证书, 例如 debian 系统,在 /etc/ssl/certs/ 目录下还存在一个名称为 AddTrust_External_Root.pem 的根证书,需要这个文件也删掉
完成这两个操作后 ,服务器上的curl 命令打开 sectigo的4月30日之前签发的证书 就不会有问题了。