【发布时间】:2012-02-09 14:16:59
【问题描述】:
我正在尝试使用 https 安全连接调用本地网络上托管的 Web 服务,首先它给出了 HostNameUnresolved 的异常,所以我使用了 IP 地址而不是名称,现在我收到以下错误:
Error in geting tags.=javax.net.ssl.SSLException: hostname in certificate didn't match: <10.100.248.99> !=
我已经将中间证书和根证书添加到 android 信任列表中。
谁能给我一个解决方案,使用主机名而不是 IP 地址访问本地网络上安全托管的 Web 服务?
【问题讨论】:
-
@Dark Rider 我正在尝试调用托管在本地网络而不是我的系统上的网络服务。我也无法从模拟器浏览器中查看它。
-
查看此链接以了解 DNS 查找失败的原因:stackoverflow.com/questions/3184463/host-is-unresolved-in-lan
-
使用将您的主机名与此内部 IP 匹配的本地 DNS。 (一个 hosts 文件可能就足够了)
-
SSL 握手将永远无法工作,除非证书的通用名称与您的服务的域名匹配......它在 Web 浏览器中工作的原因是您能够覆盖安全设置,但是,在代码中没有办法说,“请接受此名称不匹配” 您可以在本地计算机上创建一个与您的证书的通用名称匹配的 DNS(主机名)条目......或者创建一个具有通用名称的证书那是你的 IP 地址
标签: android web-services https ssl-certificate