Обновление: Многие из моих проблем связаны с тем, что вы не знаете, как отправить сертификат клиента. Я разместил их details over here.Использовать шифр клиента TLS_RSA_WITH_AES_256_CBC_SHA256
Я использую Ruby для подключения к серверу SSL, который поддерживает только шифр . Мне также нужно предоставить сертификат клиента.
Когда я смотрю доступные шифры от OpenSSL::Cipher.ciphers
, TLS_RSA_WITH_AES_256_CBC_SHA256
не указан в качестве опции.
Как добавить этот шифр к доступным шифрам?
Спасибо!
Вот мой код:
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
http.cert = OpenSSL::X509::Certificate.new(File.read("my.cer"))
http.ca_file = 'their_root.cer'
http.ciphers = ['AES256-SHA256']
http.verify_mode = OpenSSL::SSL::VERIFY_PEER
http.ssl_version = :SSLv23
request = Net::HTTP::Post.new(uri.request_uri)
request.body = my_xml
response = http.request(request)
Ошибка я получаю:
OpenSSL::SSL::SSLError: SSL_connect returned=1 errno=0 state=SSLv3 read finished A: sslv3 alert handshake failure
Проверка пакетов показывает, что сервер прекращает работу с сообщением «Ошибка Рукопожатие (40)», который, как представляется, проблема шифрования.
Я не подключается из командной строки, но вот результаты OpenSSL s_client:
$ openssl s_client -connect dir-staging.surescripts.net:443 -tls1 -servername dir-staging.surescripts.net
CONNECTED(00000003)
depth=2 /C=US/O=Surescripts LLC./OU=Surescripts Certification Authorities/CN=Surescripts Root Certification Authority
verify error:num=19:self signed certificate in certificate chain
verify return:0
14089:error:14094410:SSL routines:SSL3_READ_BYTES:sslv3 alert handshake failure:/SourceCache/OpenSSL098/OpenSSL098-52.20.2/src/ssl/s3_pkt.c:1145:SSL alert number 40
14089:error:1409E0E5:SSL routines:SSL3_WRITE_BYTES:ssl handshake failure:/SourceCache/OpenSSL098/OpenSSL098-52.20.2/src/ssl/s3_pkt.c:566:
Я пытаюсь подключиться к существующей частной службе и просто не могу заставить SSL настроить его работу. –
Отредактировал мой ответ, но сейчас это 2 вопроса. – steenslag
@steenslag Я не могу понять, является ли проблема шифром или чем-то еще. jww указал на некоторые проблемы с командной строкой openssl, но радости пока нет. –