2017-02-12 51 views
0

我目前正試圖連接到使用的OpenSSL的s_client.First驗證我連接的EPP服務器。以下命令輸出以下內容。錯誤連接到服務器EPP使用OpenSSL的s_client.First

openssl s_client -connect example.com:700 

響應:

CONNECTED(00000003) 
depth=1 /C=US/O=DigiCert Inc/CN=DigiCert SHA2 Secure Server CA 
verify error:num=20:unable to get local issuer certificate 
verify return:0 
41282:error:14094410:SSL routines:SSL3_READ_BYTES:sslv3 alert handshake failure:/BuildRoot/Library/Caches/com.apple.xbs/Sources/OpenSSL098/OpenSSL0 98-64.30.2/src/ssl/s3_pkt.c:1145:SSL alert number 40 
41282:error:140790E5:SSL routines:SSL23_WRITE:ssl handshake failure:/BuildRoot/Library/Caches/com.apple.xbs/Sources/OpenSSL098/OpenSSL098-64.30.2/src/ssl/s23_lib.c:185: 

我接着就從https://www.digicert.com/CACerts/DigiCertSHA2SecureServerCA.crt

下載DigiCert SHA2安全服務器CA我再重新嘗試使用使用OpenSSL創建一個自簽名的證書,以及新的DigiCert證書。

openssl s_client -connect example.com:700 -CAfile DigiCertSHA2SecureServerCA.crt -key key.pem -cert cert.pem -debug 

而且我得到了同樣的錯誤。我在這裏做錯了什麼?

+0

您的'scient'命令可能是錯誤的。使用TLS 1.0(或以上)和[服務器名稱指示(SNI)](http://en.wikipedia.org/wiki/Server_Name_Indication)進行連接。 'openssl s_client -connect example.com:700 -tls1 -servername example.com' – jww

+0

我試着用'-tls1'和'-servername example.com'。還是一樣的迴應。還嘗試了'-ssl2'和'-ssl3'具有相同的響應。我從答覆中猜測,這是一個證書問題。我只是不知道如何解決這個問題。我只是在黑暗中拍攝而已。 – traviswingo

回答

0

根據您提供的信息,客戶端從服務器獲取證書並繼續進行握手,但從服務器獲取一個handshake_failure(警報40)。在握手階段獲取此錯誤可能是由於服務器期望獲得客戶端未提供的客戶端證書。但是,要確定需要獲得更多信息,理想情況下是連接的完整數據包捕獲。

0

如果您使用的是自簽名證書,則應對-CAfile-cert使用相同的文件。如果您在-CAfile中使用DigiCert CA,那麼在-cert中應該是由DigiCert簽署的證書。

此外,服務器需要接受您的證書,這意味着它需要事先擁有CA(和可能的中間CA)。