Ошибка подключения OpenSSL SSL23 получить сервер привет, но браузер и curl работает
Я имею дело с проблемой, когда python не может подключиться к определенному серверу через ssl из-за того, что openssl не может завершить рукопожатие. Curl и мой браузер работают. Я пробовал несколько разных версий openssl и решений, но не может подключиться.
вот что я пробовал на обоих платформах. Вывод печатается немного иначе на OpenSSL 1.0.1 e, но это все те же ошибки.
Mac OSX Yosemite - OpenSSL 0.9.8zg 14 July 2015
Debian GNU/Linux 7 (wheezy) - OpenSSL 1.0.1e 11 Feb 2013
без указание версии
openssl s_client -connect www.uk-recruitment.net:443
openssl s_client -connect www.uk-recruitment.net:443 -cipher 'DEFAULT:!ECDH'
openssl s_client -connect www.uk-recruitment.net:443 -CAfile cacert.pem
openssl s_client -connect www.uk-recruitment.net:443 -CAfile cacert.pem -cipher 'DEFAULT:!ECDH'
openssl s_client -connect www.uk-recruitment.net:443 -CAfile cacert.pem -cipher 'DEFAULT:!ECDH' -servername uk-recruitment.net
но я всегда получаю один и тот же результат
CONNECTED(00000003)
66716:error:14077438:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert internal error:/SourceCache/OpenSSL098/OpenSSL098-52.40.1/src/ssl/s23_clnt.c:593:
если я добавить -tls1
, -tls1_1
или -tls1_2
со всеми теми же параметрами я получаю немного другую ошибку:
openssl s_client -connect www.uk-recruitment.net:443 -tls1
CONNECTED(00000003)
66750:error:14094438:SSL routines:SSL3_READ_BYTES:tlsv1 alert internal error:/SourceCache/OpenSSL098/OpenSSL098-52.40.1/src/ssl/s3_pkt.c:1145:SSL alert number 80
66750:error:1409E0E5:SSL routines:SSL3_WRITE_BYTES:ssl handshake failure:/SourceCache/OpenSSL098/OpenSSL098-52.40.1/src/ssl/s3_pkt.c:566:
1 ответов
сайты требует указание имени сервера (SNI) и SSL рукопожатия не с помощью SNI вызовет сбой:
$ openssl s_client -connect www.uk-recruitment.net:443
CONNECTED(00000003)
139999237719712:error:14077438:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert internal error:s23_clnt.c:770:
С SNI вместо этого выглядит намного лучше:
$ openssl s_client -connect www.uk-recruitment.net:443 -servername www.uk-recruitment.net
CONNECTED(00000003)
...
Cipher : ECDHE-ECDSA-AES128-GCM-SHA256
возможно,-servername
опция недоступна с OpenSSL 0.9.8, но она должна быть с OpenSSL 1.0.1.