我无法通过openssl验证证书
openssl verify cert.pem
得到这样的东西:
cert.pem:/ C = PL / O =数据
错误20在0深度查找:无法获得本地颁发者证书
Centos机器上的相同证书 - 已正确验证。
Debian:挤压/ sid
CA ROOT有问题吗?更新openssl帮助?
答案 0 :(得分:9)
与几乎所有人都信任的浏览器不同,OpenSSL默认不信任任何内容。
由您决定应该信任什么。使用OpenSSL时,您必须指定一些内容。它可能是要信任的证书或证书列表。
目录/etc/ssl/certs
包含许多证书。使用这样的目录应该允许验证几乎任何东西:
openssl verify -CApath /etc/ssl/certs cert.pem
建议您将可信证书的数量减少到一,二或尽可能少。
答案 1 :(得分:7)
您需要指定CA证书才能验证颁发的证书,因为它显然不包含在pem中(尽管这是可能的):
openssl verify -CAfile your_ca_cert_file cert.pem
如果你没有在centOS上得到错误,那么就有CA证书,openssl可以用它来成功验证cert.pem
答案 2 :(得分:1)
您需要在服务器上信任您的CA.例如,如果您的证书来自goadday,请运行以下命令。
cd /tmp
sudo wget -O gd_intermediate.crt https://certs.godaddy.com/repository/gd_intermediate.crt
sudo cp /tmp/gd_intermediate.crt /usr/local/share/ca-certificates/gd_intermediate.crt
sudo update-ca-certificates
运行这些命令后,应验证您的证书。
openssl verify cert.pem