首页 > 代码库 > Apache使用OpenSSL遇到的问题
Apache使用OpenSSL遇到的问题
一个Android APP使用HTTPs访问两台服务器,结果截然不同。
第一台IP:192.168.22.119
版本: OpenSSL 0.9.8e-fips-rhel5 01 Jul 2008
(Android STB) ==> OK
[21/Oct/2014:13:52:57 +0800] 192.168.3.33 TLSv1 RC4-MD5 "GET /cgi-bin/server_cgi?name=0022f42
第二台IP:192.168.22.129
版本: OpenSSL 1.0.1e-fips 11 Feb 2013
(Andriod STB) ==> Fail
[21/Oct/2014:03:09:47 +0000] 192.168.3.33 TLSv1 RC4-MD5 "GET /cgi-bin/server_cgi?name=0022f42
Error Log:
[error] Hostname ABC.upgrade.com provided via SNI and hostname abc.upgrade.com provided via HTTP are different
但是用浏览器正常
(Chrome) ==> OK
[21/Oct/2014:04:06:08 +0000] 192.168.2.7 TLSv1.2 DHE-RSA-AES128-GCM-SHA256 "GET /cgi-bin/server_cgi?name=aaa
(IE 10) ==> OK
[21/Oct/2014:05:56:34 +0000] 192.168.2.2 TLSv1 AES128-SHA "GET /cgi-bin/server_cgi?name=0018050
首先弄明白什么是SNI(Server Name Indication)?
参考 SSL with Virtual Hosts Using SNI
clients在SSL握手的第一个消息中包含的requested hostname, Server根据这个hostname决定正确的named virtual host, 从而可以继续建立连接
要支持SNI
1. 需要OpenSSL 0.9.8f or later
2. The client browser must also support SNI
在Apache Bugzilla上有此Bug: SSL module does not do the case insensitive URI comparison
究其原因是比较SNI name 和 Http Name时是case-sensitive
More: 不同浏览器TLS版本不同,有V1, V1.2等。所支持的加密算法也不一样。
Apache使用OpenSSL遇到的问题
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。