码迷,mamicode.com
首页 > Web开发 > 详细

Apache使用OpenSSL遇到的问题

时间:2014-10-21 17:38:15      阅读:212      评论:0      收藏:0      [点我收藏+]

标签:android   blog   http   io   os   ar   使用   sp   div   

一个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遇到的问题

标签:android   blog   http   io   os   ar   使用   sp   div   

原文地址:http://www.cnblogs.com/wangyinhui/p/4040805.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!