2011-05-04 84 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