Openssl:0深度查找时出现错误20:无法获取本地颁发者证书
我有3个证书rootca.pem、intermediateca.pem和server.pem 根目录下的Openssl验证是否正常Openssl:0深度查找时出现错误20:无法获取本地颁发者证书,ssl,openssl,ssl-certificate,Ssl,Openssl,Ssl Certificate,我有3个证书rootca.pem、intermediateca.pem和server.pem 根目录下的Openssl验证是否正常 openssl verify -verbose -CAfile rootca.pem intermediateca.pem intermediateca.pem: OK 服务器证书,由中间层签名-验证失败 openssl verify -verbose -CAfile rootca.pem -untrusted intermediateca.pem server
openssl verify -verbose -CAfile rootca.pem intermediateca.pem
intermediateca.pem: OK
服务器证书,由中间层签名-验证失败
openssl verify -verbose -CAfile rootca.pem -untrusted intermediateca.pem server.pem
CN = 2ip.ru
error 20 at 0 depth lookup: unable to get local issuer certificate
error server.pem: verification failed
我检查rootca intermediateca和intermediateca服务器的散列主题颁发者。哈希正确
我粘贴我的证书链证书中的授权密钥标识符(AKI)混乱,这导致它无法建立信任路径。叶证书和中间证书都具有指向根证书的AKI点:
# leaf
Issuer: C = RU, O = JSC Sberbank-AST, CN = int_ca
AKI: keyid:6C:C5:5B:22:4B:2D:CA:EC:C1:15:03:F6:5D:AD:C4:E8:4C:1D:06:89
# intermediate
Issuer: DC = ru, DC = sberbank-ast, CN = sberbank-ast-SUN-CA
AKI: keyid:6C:C5:5B:22:4B:2D:CA:EC:C1:15:03:F6:5D:AD:C4:E8:4C:1D:06:89
可以看出,叶证书和中间证书都基于授权密钥标识符错误地声明由同一CA颁发,而它们使用颁发者字段正确地声明由不同CA颁发
但不仅颁发者字段必须与颁发者的主题字段匹配,授权密钥标识符还必须与颁发者的主题密钥标识符匹配。虽然这对于中间CA和根CA之间的关系是正确的,但对于叶证书和中间CA之间的关系则不是正确的,因此验证在这里失败