私はJava Webサービスをサポートしています双方向SSL認証。だから私は信頼できるストア内のサーバー証明書と信頼できるストア内のクライアント証明書を持つサーバーキーストアを持つクライアントキーストア(client.p12)を持っています。2ウェイSSL認証のRubyクライアント
ブラウザ証明書管理でclient.p12をインポートするだけで簡単にサービスを呼び出すことができますが、私はrubyクライアントに問題があります。
私の現在のバージョン:私のクライアントコードと間違っている何
connect_nonblock': SSL_connect SYSCALL returned=5 errno=0 state=unknown state (OpenSSL::SSL::SSLError)
:
require 'rest_client'
p12 = OpenSSL::PKCS12.new(File.read('client.p12'), 'password')
client = RestClient::Resource.new('https://localhost:8080/service',
:ssl_client_cert => p12.certificate,
:ssl_cert_key => p12.key,
:verify_ssl => OpenSSL::SSL::VERIFY_NONE,
:ssl_version => 'TLSv1_2',
:ssl_ciphers => 'ECDHE-RSA-AES128-GCM-SHA256').get
がで失敗?
のopenssl s_client出力:
$ openssl s_client -connect localhost:8080
....
SSL-Session:
Protocol : TLSv1.2
Cipher : ECDHE-RSA-AES128-GCM-SHA256
...
これはテスト目的に適しています。しかし、スケーラビリティは問題になります。多くの受信要求が来ると、Curlはタイムアウトになり、破損します。 –