【发布时间】:2014-03-24 06:43:09
【问题描述】:
我有两个域:foo.net 和 bar.com。它们都有 SSL 证书,并且在所有桌面和移动浏览器中都能正常工作。它们托管在使用 nginx 配置的同一台服务器上。
但是,当我从本机 android 应用程序中向域发出请求时,它会以某种方式从错误的域中获取证书!这会导致 IO 异常:
request = new HttpPost("https://foo.net/api/v1/baz");
request.setHeader("Authorization", "user:pass");
response = httpClient.execute(request);
...
javax.net.ssl.SSLException: hostname in certificate didn't match: <foo.net> != <bar.com> OR <bar.com> OR <www.bar.com>
当所有其他措施似乎都表明服务器配置正确时,什么会导致 android/java 尝试使用来自 bar.com 的证书? nginx 访问或错误日志中没有出现任何内容。在我的 android 项目中的任何地方都没有提到 bar.com。
编辑:我不知道为什么,但似乎服务器正在使用服务器 IP bar.com 的证书https://198.245.xx.xxx
【问题讨论】:
标签: android ssl nginx androidhttpclient