2011-06-24 92 views
5

我需要配置通過SSL協議連接到服務器。我從服務器所有者獲得2個文件 - CA根證書(ca.pem)和測試證書請求(test.csr文件)。SSL麻煩(openssl)

我嘗試測試通過的OpenSSL s_connect工具連接,我給奇怪的結果(XXX - 蒙面值):

openssl s_client -connect MYURL -CAfile ca.pem 
CONNECTED(00000003) 
xxx verify return:1 
xxx verify return:1 
3074332296:error:14094410:SSL routines:SSL3_READ_BYTES:sslv3 alert handshake failure:s3_pkt.c:1193:SSL alert number 40 
3074332296:error:140790E5:SSL routines:SSL23_WRITE:ssl handshake failure:s23_lib.c:177: 

但是,後握手警報和打印證書數據,我看到:

SSL handshake has read yyy bytes and written yyy bytes 
New, xxx, Cipher is xxx 
Server public key is xxx bit 
Compression: xxx 
Expansion: xxx 
SSL-Session: 
    Protocol : xxx 
    Cipher : xxx 
    Session-ID: 
    Session-ID-ctx: 
    Master-Key: xxx 
    Key-Arg : xxx 
    PSK identity: xxx 
    PSK identity hint: xxx 
    Compression: xxx 
    Start Time: xxx 
    Timeout : xxx (sec) 
    Verify return code: 0 (ok) 

什麼意思驗證返回碼是0(好)?如果發生握手錯誤/警報,怎麼可能?

回答

4

您正在收到來自服務器的握手失敗警報,這意味着發生了一些其他錯誤,而不是證書驗證失敗。您應該查看服務器端日誌以瞭解失敗的線索。

+2

檢查服務器強制執行的支持密碼是否與客戶端嘗試連接的密碼匹配。如果嘗試使用Web服務器配置不支持的密碼進行連接,則可能會出現此錯誤 - 例如,這可能是由底層服務器端openssl分發引起的 –