在我的工作中,我們運行帶有內部CA的私人PKI來簽署我們的服務器證書。在開發一個通過https與REST API進行通信的Android應用程序時,我使用192.168.x.x IP設置了開發服務器併爲其頒發了證書。所以我必須:使用IP的有效android證書
- 用的CN CA證書「自定義CA」
- 服務器證書與CN 192.168.0.3
然後我跟着Android docs on setting up a TrustStore,並得到了應用溝通通過https在Android 4.0.4設備中。 當我在運行Android 4.4(KitKat)的設備上測試應用程序時,服務器無法驗證。
任何想法爲什麼?
另一種處理方法是即使在開發環境中也要設置主機名。 (甚至全球可見的DNS服務器都可以返回私有IP地址,因此您可以將「test1.mycompany.com」設置爲192.168.0.3。) – Bruno
您應該*不*將主機名放置在「通用名稱(CN)」中, '。這已被IETF和CA /瀏覽器論壇棄用。相反,將DNS名稱放在'主題備用名稱(SAN)'中。使用'CN'作爲友好名稱,例如'Example Widgets'(我個人不會使用像'Example Widgets,LLC'這樣的合法名稱,因爲它經常向用戶顯示友好名稱)。 – jww