Ich habe Java-Web-Service unterstützt 2-Wege-SSL-Authentifizierung. So habe ich Client-Keystore (client.p12) mit Server-Zertifikat im vertrauenswürdigen Speicher und Server-Keystore mit Client-Zertifikat im vertrauenswürdigen Speicher.Ruby-Client für 2-Wege-ssl-Authentifizierung
Ich kann meinen Dienst einfach mit Browser oder Postboten (nur importieren client.p12 in Browser-Zertifikatsverwaltung) aufrufen, aber ich habe Probleme mit Ruby-Client.
Meine aktuelle Version:
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
nicht mit:
connect_nonblock': SSL_connect SYSCALL returned=5 errno=0 state=unknown state (OpenSSL::SSL::SSLError)
Was mit meinem Client-Code ist falsch?
openssl s_client Ausgang:
$ openssl s_client -connect localhost:8080
....
SSL-Session:
Protocol : TLSv1.2
Cipher : ECDHE-RSA-AES128-GCM-SHA256
...
Dies ist gut für Testzwecke. Aber die Skalierbarkeit wird ein Problem sein, wenn viele eingehende Anfragen kommen, wird Curl ausbrechen und es wird brechen. –