2011-05-04 76 views
21

我想知道有关为SSL/TLS服务器名称指示(SNI)扩展在Android SDK的支持。Android的SSL - SNI支持

+0

即使是现在,一些Android的HTTP库不支持SNI,我只是遇到了一个问题,没有意识到它的SNI,因为我一直得到失败的SSL握手,而SNI被禁用的时刻,它都可以工作,只是一个音符,连接使用'HttpsURLConnection'作为它(我相信)使用也支持SNI的OKHTTP。 – visual 2016-08-22 00:37:39

回答

23

据我所知,目前在Android SDK中一个部分支持。目前的情况是这样的:

  1. 由于与HttpsURLConnection API的姜饼释放TLS连接支持SNI。
  2. 附带的Android
  3. 的Apache HTTP客户端库不支持SNI
  4. 的Android网络浏览器不支持SNI没有(因为使用Apache HTTP客户端API)

有一个opened ticket关于这个问题的Android错误跟踪器。

也可以通过向这个URL连接测试SNI支持:https://sni.velox.ch/

+0

嗨JCS,感谢您的帮助。我已经尝试使用SSLCONTEXT(TLS)和Android SDK中可用的SSLENGINE类的https://sni.velox.ch/链接。我正在握手。但是,同样的代码是不能工作我们的测试服务器上。服务器有什么关系吗?这个你能帮我吗。 – user736435 2011-05-05 14:41:05

+0

在客户端的任何异常? – Jcs 2011-05-05 15:43:32

+0

我得到这个以下错误:错误协商SSL连接。 java.io.IOException:SSL握手失败:SSL库失败,通常为协议错误 SSL例程:SSL23_GET_SERVER_HELLO:sslv3警报握手失败(external/openssl/ssl/s23_clnt.c:580 0xaf589bac:0x00000000)“ – user736435 2011-05-08 05:43:56