为什么安装根证书后 SSL 证书可能会验证失败?

为什么安装根证书后 SSL 证书可能会验证失败?

我正在为内部网构建 openssl 证书颁发机构。

我有root.crtintermediate.crt它由根签名,并且server.crt由中间签名。

我可以根据根来验证中间结果

#> openssl verify -CAfile root.crt intermediate.crt && echo ok
ok

在 Ubuntu 上我可以安装根证书

#> mv root.crt /usr/local/share/ca-certificates/my-root.crt
#> update-ca-certificates 
Updating certificates in /etc/ssl/certs...
0 added, 0 removed; done.
Running hooks in /etc/ca-certificates/update.d...

done.
done.

但如果我尝试根据中间件验证服务器,它会失败

#> openssl verify -CAfile intermediate.crt server.crt && echo ok
error 2 at 1 depth lookup:unable to get issuer certificate

我认为这意味着它无法验证完整的链条server.crt -> intermediate.crt -> my-root.crt

我已经手动检查了证书openssl x509 -noout -text并且它们看起来没问题:Issuer对于server.crt中间证书的主题匹配,对于其他两个证书,它与根证书匹配并且日期在正确的范围内。

目标是在应用程序中分发服务器和中间证书,并在全球范围内安装根证书。我发誓这个方法之前奏效了,那么我遗漏了什么?

相关内容