在我的工作中,我们运行一个带有内部CA的私有PKI来签署我们的服务器证书。在开发通过https与REST通信的Android应用程序时,我使用一个192.168.x.xIP设置了一个dev服务器,并为它颁发了一个证书。所以我有:
然后我跟踪了关于设置TrustStore的Android文档,并在Android4.0.4设备上通过https进行了应用程序的通信。当我在运行Android4.4 (KitKat)的设备上测试该应用程序时,无法验证服务器。
知道为什么吗?
发布于 2014-07-08 12:19:51
因此,在深入研究了RFC2818和RFC6125之后,我发现APIv14 (4.0.4)中的DefaultHostnameVerifier实现会根据CN部分检查主机,如果不匹配,它将查找DNS类型的SAN条目,而不是IP类型。APIv19 (4.4.4)将检查IP主机和SAN IP条目。
因此,我在服务器证书中添加了一个IP条目192.168.0.3,并将其与CA签名,并获得了通过HTTPS通信的4.4设备。
https://stackoverflow.com/questions/24631695
复制相似问题