5

證書我使用OpenSSL的v0.9.8r,我試圖運行此命令(與CA文件名稱爲目錄中的cacert.pem中,我正在運行)Openssl的的s_client.First不驗證0.9.8r

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問題一段時間。提前致謝。

問候

哈日

+0

這是不是你的描述很清楚。你升級了OpenSSL嗎?或者安裝不同的版本?您是否切換了tot v0.8.8r後是否移動/重命名了任何證書文件或文件夾?什麼OS? – jveazey 2011-08-09 01:34:54

回答

2

從OpenSSL的Verify頁面

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運行命令時所在的同一目錄運行命令。
0

這一個是更接近比功能中的錯誤,但它是一個功能,因此只要我們記錄它;-)

c_rehash /etc/ssl/certs