某些 Android 设备上的 SSL 出现 SNI 错误

某些 Android 设备上的 SSL 出现 SNI 错误

我收到一个 SNI 错误:

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

在某些 Android 手机上向我的域发出 SSL 请求时。尽管确保在客户端上设置了 Host 标头,但仍然会出现这种情况。

我也尝试过设置:

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 的应用程序都可能导致这种行为。

相关内容