SSL23_GET_SERVER_HELLO:使用TLSv1警告内部错误
问题描述:
在类似的问题当前正在运行,但没有解决方案的帮助SSL23_GET_SERVER_HELLO:使用TLSv1警告内部错误
- OpenSSL connection error SSL23_GET_SERVER_HELLO, but browser and curl works
- https://askubuntu.com/questions/649000/openssl-curl-error-ssl23-get-server-hellotlsv1-alert-internal-error
我没有访问服务器CONFIGS,因为这是只是一个普通的Cloudfront + S3设置。
[email protected]:~# openssl s_client -connect tracking.kairion.de:443 -servername tracking.kairion.de
CONNECTED(00000003)
140336648943272:error:14077438:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert internal error:s23_clnt.c:757:
---
no peer certificate available
---
No client certificate CA names sent
---
SSL handshake has read 7 bytes and written 318 bytes
---
New, (NONE), Cipher is (NONE)
Secure Renegotiation IS NOT supported
Compression: NONE
Expansion: NONE
SSL-Session:
Protocol : TLSv1.2
Cipher : 0000
Session-ID:
Session-ID-ctx:
Master-Key:
Key-Arg : None
PSK identity: None
PSK identity hint: None
SRP username: None
Start Time: 1480860654
Timeout : 300 (sec)
Verify return code: 0 (ok)
---
卷曲返回类似的错误
[email protected]:~# curl 'https://tracking.kairion.de/kairion.gif' -v
* Hostname was NOT found in DNS cache
* Trying 2400:cb00:2048:1::6818:72f8...
* Connected to tracking.kairion.de (2400:cb00:2048:1::6818:72f8) port 443 (#0)
* successfully set certificate verify locations:
* CAfile: none
CApath: /etc/ssl/certs
* SSLv3, TLS handshake, Client hello (1):
* SSLv3, TLS alert, Server hello (2):
* error:14077438:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert internal error
* Closing connection 0
curl: (35) error:14077438:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert internal error
错误是可重复使用至少两个服务器上:
openssl 1.0.1t-1+deb8u5 (jessie)
openssl 1.0.1t-1+deb7u1 (wheezy)
但适用于
openssl 1.0.2j-1 (stretch)
有趣的是,有时它适用于也许一个小时,然后失败一个小时。
答
今天发现这个问题,涉及到cloudflare。
由于我禁用了该子域的cloudflare,所以它没有任何问题。
似乎cloudflare有时会从cloudfront返回正确的CNAME,有时会返回一个cloudflare IP。只要它直接返回了cloudfront SSL的工作,当它返回cloudflare IP SSL失败。
您应该使用TLS 1.0及更高版本的OpenSSL命令。尝试'openssl s_client -connect tracking.kairion.de:443 -servername tracking.kairion.de -tls1'。你也可以使用'-tls1_1'和'-tls1_2'。我的OpenSSL是1.1.0,所以我不能复制。 OpenSSL 1.0.2也是一个不错的选择。 OpenSSL 1.1.0和0.9.8是不好的选择,因为它们缺乏过去几年的许多TLS功能。 – jww
Stack Overflow是编程和开发问题的网站。这个问题似乎与题目无关,因为它不涉及编程或开发。请参阅帮助中心的[我可以询问哪些主题](http://*.com/help/on-topic)。也许[超级用户](http://superuser.com/)或[Unix&Linux堆栈交换](http://unix.stackexchange.com/)会是一个更好的地方。另请参阅[我在哪里发布关于Dev Ops的问题?](http://meta.stackexchange.com/q/134306) – jww
这个问题的确是关于开发,或者你忘记了我们大多数人会在编写代码时进行命令行测试代码? – AlexD