【发布时间】:2016-11-28 15:41:28
【问题描述】:
我已经使用CN=localhost 创建了一些带有自签名证书的 HTTPS 服务器。但是当我启动客户端时,它告诉我一些 Bind-Exception:
socket::connect fails with error code = 10049
我使用CN=hostname 创建了一些新证书,我发现它(并且是计算机名称)并带有以下行:
hostname = InetAddress.getLocalHost());
但是这种方式对我来说并不实用。我想创建一个带有诸如example.com 之类的 URL 的证书,并且想多次使用此证书。所以我有以下想法:我在 /etc/hosts-file 中添加了一些 url:
127.0.0.1 example.com
然后我使用 URL example.com。
有没有办法改变 InetAddress.getLocalhost?或者是否有可能使用一些客户 IP 地址订单主机名?
我用过:
InetSocketAddress address = new InetSocketAddress("test.com",9999);
创建客户地址,但这并没有解决绑定异常。
有人有什么想法吗?
【问题讨论】:
-
CN=www.example.com可能是错误的。主机名始终位于 SAN 中。如果它出现在 CN 中,那么它也必须出现在 SAN 中(在这种情况下您必须列出两次)。有关更多规则和原因,请参阅 How do you sign Certificate Signing Request with your Certification Authority 和 How to create a self-signed certificate with openssl? 您还需要将自签名证书放在适当的信任库中。
标签: java ssl dns ssl-certificate hostname