我正在处理一个问题,即由于openssl无法完成握手,python无法通过ssl连接到特定服务器.卷曲和我的浏览器工作.我尝试了几个不同的openssl版本和解决方案,但似乎无法连接.
以下是我在以下两个平台上尝试过的内容.OpenSSL 1.0.1e上的输出打印略有不同,但仍然是相同的错误.
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:
Steffen Ullr.. 10
这些站点需要服务器名称指示(SNI),不使用SNI的SSL握手将导致失败:
$ 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一起使用.
这些站点需要服务器名称指示(SNI),不使用SNI的SSL握手将导致失败:
$ 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一起使用.