异常问题
最近和PG在做EID项目,使用HTTPs+AS2方式传输,证书配置好之后,在发送时,报错了异常信息:Delivery Failed:iaik.security.ssl.SSLException: Server certificate rejected by ChainVerifier
分析问题
这种原因一般是Truststore文件中客户的证书链有问题导致的。然后我们回头检查,发现PG给我们证书链竟然有4层(我第一次遇到),平常我们常用3层SSL证书。
解决问题
1 PG证书层层制作cer证书文件
第一层:Entrust Root Certification Autority >>顶层证书
第二层: Entrust Root CertificationAuthority - G2 >>次顶层证书
第三层:Entrust CertificationAutority - L1K >>中间层证书
第四层:agwa.pg.com >> 底层域名证书
2.Truststore制作
Truststore使用portecle-1.9进行制作,依次将这4个cer从顶层根证书依次按照步骤导入到制作的Truststore中,形成一个完成的证书链。
Entrust Root Certification Autority 颁发证书给 Entrust Root Certification Authority- G2;再颁发证书给Entrust CertificationAutority - L1K;再颁发证书给agwa.pg.com
将制作好的Trustore导入到IS的目录下,然后reload,可以发现最终导入的Trsutstore中证书已经完整了(如下图所示),再次发送时错误消失。