我已创建一些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