某些 Android 裝置上透過 SSL 出現 SNI 錯誤

某些 Android 裝置上透過 SSL 出現 SNI 錯誤

我收到 SNI 錯誤:

Hostname X provided via SNI, but no hostname provided in HTTP request

在某些 Android 手機上向我的網域發出 SSL 請求時。儘管確保在客戶端上設定了主機標頭,但仍然如此。

我也嘗試過設定:

SSLStrictSNIVHostCheck off

在我的 apache conf 中,但我仍然看到這個錯誤。有人能給我前進的方向嗎?

答案1

根據這份報告https://code.google.com/p/android/issues/detail?id=35050您的問題也可能是由於 Android 實作 libcore/luni/src/main/java/libcore/net/http/HttpConnection.java 中的錯誤所引起的。

由於此錯誤,TLS 層的 SNI 是代理的主機名,而不是 HTTP 請求 URL 中實際提供的主機名稱。

因此,任何使用 Android 版本 < 4.1.2(已於 2012 年 7 月 20 日修復)實現 HttpConnection 的應用程式都可能會導致此行為。

相關內容