5

我正在使用 openssl v0.9.8r 并尝试运行此命令(CA 文件名为 cacert.pem 在我运行的目录中)

openssl s_client -CAfile cacert.pem -CApath ./ -connect mail.google.com:443

验证失败如下

Verify return code: 20 (unable to get local issuer certificate)

但是,当我在其中一个旧版本(即 OpenSSL 0.9.8e-fips-rhel5)上尝试相同的命令时,它按预期成功。我在这里错过了什么吗?我将非常感谢我能得到的任何帮助,因为我已经被 openssl 问题困扰了一段时间。提前非常感谢。

问候

哈里

4

2 回答 2

2

从 OpenSSL验证页面

20 X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT_LOCALLY:无法获取本地颁发者证书

找不到颁发者证书:如果找不到不受信任的证书的颁发者证书,则会发生这种情况。

您可以猜到,这意味着 CA 未能加载或验证。这可能是由多种原因引起的,但这里有一个很好的清单。

  • 权限。在 Linux 上尝试 sudo。在 Windows 上尝试“以管理员身份运行”。
  • 尝试对两个版本都使用 verify 命令,看看是否得到相同的错误。

    openssl verify -CAfile cacert.pem -CApath ./

  • 丢失/放错位置的文件。自您运行以来,该文件夹中的某些内容可能发生了变化。

  • 小路。尝试从您从 OpenSSL 0.9.8e-fips-rhel5 运行命令时所在的同一目录运行命令。
于 2011-08-09T01:58:12.363 回答
0

This one is closer to a bug than a feature, but it's a feature so long as we document it ;-)

c_rehash /etc/ssl/certs
于 2014-09-03T04:46:38.623 回答