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