2017-05-19 24 views
0

Windowsクライアントで使用するとリモートサーバーに完全に接続できる.pfxファイルがあります。私は今、freshmeat_linux/Linux]クライアントを使用してサーバーに接続したい。"sslv3アラートハンドシェイク失敗:SSLアラート番号40"でSSLハンドシェイクが失敗する

問題点1)私は

openssl pkcs12 -in Name.pfx -nocerts -out priv.pem -nodes 
openssl pkcs12 -in Name.pfx -nokeys -out pub.pem 
、PFXファイルからパブリック証明書と秘密鍵を抽出するためのコマンド次のopensslを使用しかし、私は両方のファイルのMD5を確認するために、2つのコマンドを次実行したときに、私はそれらの両方を発見しました異なる。

openssl rsa -noout -text -in priv.pem | openssl md5 
openssl x509 -noout -text -in pub.pem | openssl md5 

問題2)代わりに、certとkeyの両方を持つpfxから単一のpemファイルを抽出するために、次のコマンドを使用しました。

openssl pkcs12 -in Name.pfx -out bundle.pem 

次のコマンドを使用して、私は、リモートサーバーに接続してみました。このPEMファイルを使用する:

openssl s_client -servername 1.2.3.4 -connect 1.2.3.4:1234 -CAfile bundle.pem -state -tls1_2 

これは、ハンドシェイクは、なぜ私が把握カントの端末

CONNECTED(00000003) 
SSL_connect:before/connect initialization 
SSL_connect:SSLv3 write client hello A 
SSL_connect:SSLv3 read server hello A 
depth=0 O = "My Name", CN = Name - Local 
verify return:1 
SSL_connect:SSLv3 read server certificate A 
SSL_connect:SSLv3 read server key exchange A 
SSL_connect:SSLv3 read server certificate request A 
SSL_connect:SSLv3 read server done A 
SSL_connect:SSLv3 write client certificate A 
SSL_connect:SSLv3 write client key exchange A 
SSL_connect:SSLv3 write change cipher spec A 
SSL_connect:SSLv3 write finished A 
SSL_connect:SSLv3 flush data 
SSL3 alert read:fatal:handshake failure 
SSL_connect:failed in SSLv3 read finished A 
140250807310240:error:14094410:SSL routines:SSL3_READ_BYTES:sslv3 alert handshake failure:s3_pkt.c:1275:SSL alert number 40 
140250807310240:error:1409E0E5:SSL routines:SSL3_WRITE_BYTES:ssl handshake failure:s3_pkt.c:598: 
--- 
Certificate chain 
0 s:/O=My Name /CN=Name - Local 
    i:/O=My Name /CN=Name - Local 
--- 
Server certificate 
-----BEGIN CERTIFICATE----- 
<random string of certificate> 
-----END CERTIFICATE----- 
subject=/O=My Name /CN=Name - Local 
issuer=/O=My Name /CN=Name - Local 
--- 
No client certificate CA names sent 
Server Temp Key: ECDH, secp521r1, 521 bits 
--- 
SSL handshake has read 1332 bytes and written 206 bytes 
--- 
New, TLSv1/SSLv3, Cipher is ECDHE-RSA-AES256-GCM-SHA384 
Server public key is 2048 bit 
Secure Renegotiation IS supported 
Compression: NONE 
Expansion: NONE 
SSL-Session: 
    Protocol : TLSv1.2 
    Cipher : ECDHE-RSA-AES256-GCM-SHA384 
    Session-ID: <some string> 
    Session-ID-ctx: 
    Master-Key: <some string> 
    Key-Arg : None 
    Krb5 Principal: None 
    PSK identity: None 
    PSK identity hint: None 
    Start Time: 1495217834 
    Timeout : 7200 (sec) 
    Verify return code: 0 (ok) 
--- 

に次のような出力を提供します失敗する。正確に問題が存在するところで3日間立ち往生してください。

答えて

1

But when I ran following two commands to verify md5 of both files, I found both of them different.

openssl rsa -noout -text -in priv.pem | openssl md5 
openssl x509 -noout -text -in pub.pem | openssl md5 

最初のコマンドは、秘密鍵に関するテキスト情報を示しています。公開鍵を含む証明書に関する2番目のテキスト情報。もちろん、これらの情報は異なります。

Using this pem file I tried connecting to the remote server, with following command :

openssl s_client -servername 1.2.3.4 -connect 1.2.3.4:1234 -CAfile bundle.pem -state -tls1_2 

これは、信頼できるCA(-CAfile)として証明書を使用します。これはおそらくあなたが望むものではありません。その代わりに、証明書をクライアント証明書として使用する必要があります。これは、と-keyのオプション(-cert bundle.pem -key bundle.pem)を使用してas documentedを実行する必要があります。

それ以外は、-servernameはIPアドレスではなくホスト名である必要があります。ホスト名がない場合は、このオプションをスキップします。

SSL_connect:SSLv3 read server certificate request A 
... 
SSL_connect:SSLv3 write client certificate A 
... 
SSL3 alert read:fatal:handshake failure 

クライアント証明書を正しく指定しないため、空のクライアント証明書が送信されます。しかし、サーバーは有効なクライアント証明書を要求し、SSLアラート内の失敗したハンドシェイクをクライアントに報告します。

+0

しかし、これらの2つのファイルのmd5出力が同じでなければならないという記事(https://kb.wisc.edu/middleware/page.php?id=4064など)があります。また、CAfileフラグを削除し、代わりにcert&keyフラグを使用しました。端末はパスフレーズを要求し、「エラー設定秘密鍵 140495240427424:エラー:0B080074:x509証明書ルーチン:X509_check_private_key:キー値の不一致:x509_cmp.c:331: " –

+0

@AbhayJain:あなたはオプションを使用しています'-text'です。あなたが参照する記事では、 '-modulus'オプションが代わりに使用されています。最後のオプションでは、結果は同じでなければなりません。最初のオプションは同じではありません。 –

+0

@AbhayJain:あなたの他の問題についてはhttps://stackoverflow.com/questions/4658484/ssl-install-problem-key-value-mismatch-but-they-do-matchを参照してください –

関連する問題