openssl无法获得本地发行人证书debian

时间:2014-10-08 15:13:49

标签: apache ssl openssl ssl-certificate

我无法通过openssl验证证书

openssl verify cert.pem 

得到这样的东西:

  

cert.pem:/ C = PL / O =数据
  错误20在0深度查找:无法获得本地颁发者证书

Centos机器上的相同证书 - 已正确验证。

Debian:挤压/ sid

CA ROOT有问题吗?更新openssl帮助?

3 个答案:

答案 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