问题背景:一、客户在更新atrust 证书的时候,提示证书链不合法,没有按照上级至下级的顺序进行连接。
排查思路:
一、把客户的证书通过certutil -dump xxx.pfx 命令观察一下证书链情况如下,发现证书链中缺乏根证书。 ![]()
二、找客户拿到原始的crt或者cer公钥证书文件,以及私钥key文件,去通过工具合成pfx证书。合成pfx证书之后再次使用命令检查证书链情况,可以看见有根证书,有CA证书,有域名证书。之后可以正常导入用户设备中。
附录:
根证书:“颁发者”和“颁发给”信息完全相同,就是自己签发给自己的证书。 中级CA证书:“颁发者”和“颁发给”信息不一样,由上级CA签发,其中“颁发者”就是它的上级签发CA。 域名证书:被CA机构颁发给实际域名的证书,一般处于证书链末尾。
完整的证书信任链:
就是具有完整的证书签发关系链,比如证书A由B签发,证书B由C签发,那么信任链就是A—B—C组成的信任关系或者A-B组成的信任关系。由于我们要导入的是根证书链,通常根证书链都是两级CA,所以通常为A-B,也有少部分是A-B-C(这里说一下,除了a -> b -> c以外,ssl、AD、atrust设备中导入的证书,还需要包含a颁发给a自己的根证书。即下图证书B) 如下图:证书A是证书链,而证书B仅仅只是一本根证书(颁发者和颁发给都是同一个名字,说明它就是根证书)
PFX(.p12)是打包文件,把(crt、cer)证书 + (key文件)私钥打包在一起并用密码保护。所以可以通过这两个文件重新合成为pfx格式文件。
|