我有两个域: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>
bar.com
当所有其他措施似乎表明服务器配置正确时,什么会导致 android/java 尝试使用证书?nginx 访问或错误日志中没有出现任何内容。我的android项目中没有提到bar.com
任何地方。
编辑:我不知道为什么,但似乎服务器正在使用bar.com
服务器 IP的证书https://198.245.xx.xxx