2017-02-12 40 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)。