【问题标题】:Changing host address in Java在 Java 中更改主机地址
【发布时间】: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);

创建客户地址,但这并没有解决绑定异常。

有人有什么想法吗?

【问题讨论】:

标签: java ssl dns ssl-certificate hostname


【解决方案1】:

当主机名到主机名的映射不可行时,让我们使用 IP 地址创建证书,然后将 n 多个主机名映射到相同的 IP 地址。

使用CN=127.0.0.1CN=<LOCAL_IP_ADDRESS>创建证书,然后通过hosts文件解析为example.com,然后尝试使用InetSocketAddress address = new InetSocketAddress("example.com",9999);

【讨论】:

  • 您好!谢谢您的回复!我创建了一个新的自签名证书并将其导入到我现有的密钥库中。现在我得到了这个例外:Exception thrown: javax.microedition.pki.CertificateException:Certificate does not contain the correct site name localhost vs test.com我不明白这个例外。因为我两个都进口了! localhost 和 test.com 的证书。 :-(
  • 证书中有多少条目?您可以尝试使用 CN=127.0.0.1 的新证书文件吗?
  • “您在证书中有多少条目?”是什么意思?我使用 openssl 创建了一个新证书并将其导入我的密钥库。但这并没有解决我的问题。使用我的浏览器作为客户端,我可以访问我的服务器。但是对于我的客户端,这是一个 java 应用程序,我知道这个错误:IOException occured socket::connect fails with error code = 10051 当我试图访问主机名时,我得到了上面写的。我正在尝试解决https://hostname:443/
猜你喜欢
  • 2018-09-28
  • 1970-01-01
  • 2020-12-18
  • 2012-02-10
  • 1970-01-01
  • 1970-01-01
  • 2011-03-23
  • 2013-02-26
  • 1970-01-01
相关资源
最近更新 更多