我已創建一些HTTPS服務器與自我簽署的證書與此CN=localhost
。但是,當我開始在客戶端,它告訴我一些綁定,例外:更改在Java中的主機地址
socket::connect fails with error code = 10049
我創建了CN=hostname
一些新的證書,我發現(而這是計算機名)與以下行:
hostname = InetAddress.getLocalHost());
但這種方式對我來說並不實際。我想創建一個帶有一些URL的證書,如example.com
,並且希望多次使用此證書。因此,我不得不以下的想法:我添加一些URL到/ etc/hosts文件,文件中有這樣的:
127.0.0.1 example.com
然後我使用的URL example.com
。
有什麼方法可以更改InetAddress.getLocalhost?或者有可能使用某些客戶的IP地址順序主機名?
我用:
InetSocketAddress address = new InetSocketAddress("test.com",9999);
創建客戶的地址,但是這不能解決綁定的異常。
有人有什麼想法嗎?
另請參閱[分配一個域名爲localhost的開發環境(https://stackoverflow.com/q/7576217/608639)和[本地主機或127.0.0.1的第三方簽名SSL證書](https://stackoverflow.com/q/6793174/608639) – jww
***'CN = www.example.com '***可能是錯的。主機名始終在* SAN *中。如果它存在於* CN *中,那麼它也必須存在於* SAN *中(在這種情況下,您必須列出它兩次)。有關更多規則和原因,請參閱[如何使用您的證書頒發機構簽署證書籤名請求](http://stackoverflow.com/a/21340898/608639)和[如何使用openssl創建自簽名證書?]( http://stackoverflow.com/q/10175812/608639)您還需要將自簽名證書放入適當的信任庫中。 – jww