原载于 https://blog.iks.moe/archives/AlphaSSL-2023-GlobalSign-R6-fullchain.html
近日有群友报告 AlphaSSL 新签的证书兼容性不佳,在用自动证书工具补齐证书链之后仍然无效。鉴于 GlobalSign 近几年搞了一大堆 intermediate CA,估摸着这回终于到 AlphaSSL 头上了。简单查了下,果然。
2022 年底的 AlphaSSL CA - SHA256 - G2 失效,GlobalSign 给了 AlphaSSL CA - SHA256 - G4 作为新的 intermediate CA 证书,写在里面的 AIA 指向 GlobalSign Root CA (01SEP1998 - 28JAN2028, root-r1)。
奇怪的是 2024 年 1 月 28 日之后的 AlphaSSL CA - SHA256 - G4 不再签发证书,改由 GlobalSign GCC R6 AlphaSSL CA 2023 签发原有通道的 AlphaSSL 证书,而后者的 AIA 指向 GlobalSign Root CA - R6 (10DEC2014 - 10DEC2034, root-r6),且为信任锚。
显然 2024 年 1 月 28 日之后的 AlphaSSL 默认的证书链的信任锚为 2014 年的这张 GlobalSign Root CA - R6。众所周知,一个新信任锚被绝大多数操作系统和软件所接受的周期是极长的,2010 年出的新根证书 (e.g. USERTrust) 依然在很多嵌入式设备、操作系统和浏览器中不受支持。保险起见,新的根证书会找老根证书交叉签名以保证自身的良好的兼容性,GlobalSign 也不例外。因此,重建证书链,将信任锚指向为其交叉签名的较老的根证书上即可解决问题。
查询 https://crt.sh/?caid=272222 得知 GlobalSign GCC R6 AlphaSSL CA 2023 仅有一条直接上级 CA,即 GlobalSign Root CA - R6 (https://crt.sh/?caid=18459)。
继续向上查询,得知 GlobalSign Root CA - R6 除了为信任锚外,还与 GlobalSign Root CA (01SEP1998 - 28JAN2028, root-r1) 有背书,那么解决方案呼之欲出————拼接 GlobalSign GCC R6 AlphaSSL CA 2023, GlobalSign Root CA - R6 和 GlobalSign Root CA 即可解决问题。