2013-04-27 154 views
6

我正在使用本地https協議和假證書。如何解決https openid錯誤

當使用​​3210,它給了我這個錯誤:

OpenID failed 

OpenID discovery error: Error fetching XRDS document: (60, 'server certificate   verification failed. CAfile: /etc/ssl/certs/ca-certificates.crt CRLfile: none') 

我怎樣才能解決這個問題?

+0

添加我的假證書/etc/ssl/certs/ca-certificates.crt文件和錯誤改爲 'OpenID的失敗 OpenID查找錯誤:錯誤獲取XRDS文件:(77「問題與SSL CA證書(路徑?訪問權限?)')' – sdnaghdi 2013-04-27 11:08:34

+2

錯誤是curl庫http://curl.haxx.se/libcurl/c/libcurl-errors.html#CURLESSLCACERT的錯誤。 CURL文檔指出您要連接的服務器具有無法驗證的證書。 什麼時候發生錯誤,什麼URL? – ziima 2013-06-07 12:47:18

回答

0

根據我的經驗,在大多數情況下,驗證是自簽名證書挑剔。

一般情況下,使用「假」證書時,你應該始終採取額外的步驟,並創建一個假的CA並簽署與CA假證書如果沒有別的,這使得你的測試更像是一個真實的場景。

下面是關於如何做到這一點與OpenSSL的簡要說明:

  1. 創建CA(自簽名)
  2. 創建服務器密鑰和CSR openssl req -out server.csr -pubkey -new -keyout server.secure.key
  3. 脫下密碼openssl rsa -in server.secure.key -out server.key
  4. 登錄服務器證書與CA openssl x509 -req -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out server.crt -days 1825
  5. (獲得進一步的證書,使用現有的序列號,openssl x509 -req -in server.csr -CA ca.crt -CAkey ca.key -CAserial ca.srl -out server.crt -days 1825

只要你有問題,任何 SSL(不僅僅是HTTPS) - 使用原始openssl

openssl s_verify -connect <hostname>:<portnumber> <options> 

例如調試

openssl s_verify -connect localhost:443 -CAfile myfakeca.pem 

這通常可以爲您解決實際證書問題帶來很多麻煩,這些問題實際上與您的代碼無關。