【发布时间】:2014-07-08 12:18:34
【问题描述】:
在我的工作中,我们使用内部 CA 运行私有 PKI 来签署我们的服务器证书。在开发通过 https 与 REST api 通信的 Android 应用程序时,我使用 192.168.x.x IP 设置了一个开发服务器并为其颁发了证书。所以我有:
- CN 为“自定义 CA”的 CA 证书
- CN 192.168.0.3 的服务器证书
然后我关注Android docs on setting up a TrustStore 并让应用程序在 Android 4.0.4 设备中通过 https 进行通信。 当我在运行 Android 4.4 (KitKat) 的设备上测试该应用程序时,无法验证服务器。
有什么想法吗?
【问题讨论】:
-
另一种方法是在您的开发环境中设置主机名。 (即使是全局可见的 DNS 服务器也可以返回私有 IP 地址,因此您可以将“test1.mycompany.com”设置为 192.168.0.3。)
-
您应该不将主机名放在
Common Names (CN)中。 IETF 和 CA/浏览器论坛都反对这种做法。而是将 DNS 名称放在Subject Alternate Names (SAN)中。将CN用作“Example Widgets”之类的友好名称(我个人不使用“Example Widgets, LLC”之类的合法名称,因为它通常是向用户显示的友好名称)。
标签: java android ssl https x509certificate