如何禁用Java的SSL反向DNS查找

mal*_*ere 7 java dns ssl

我有一个正在开发的服务器和一些连接到它的开发人员.该服务器使用Java的TLS实现SSLEngine.

我们看到,首先,每个新连接都会有很长的延迟(30-40秒).我们将其缩小以反转DNS查找超时.我们通过将所有IP放入HOSTS文件中来解决这个问题.

现在,问题是我们将逐步扩大我们的用户群,我不想编辑该HOSTS文件,特别是因为我们无法保证他们将拥有静态IP.

有没有办法在Java的SSL/TLS中禁用反向DNS查找步骤?

我想将此作为可配置参数,以便我们可以在开发期间将其关闭.

小智 11

当我尝试仅通过IP地址创建SSL套接字连接时,我今天遇到了同样的问题.这导致反向DNS查找尝试,因此它真的很慢......

对我来说,解决方案只是在为SSL连接创建InetAddress时传递一个虚拟空字符串作为主机名.也就是说,我改变了

InetAddress.getByAddress(addrBytes)
Run Code Online (Sandbox Code Playgroud)

InetAddress.getByAddress("", addrBytes)
Run Code Online (Sandbox Code Playgroud)

它不再进行反向DNS查找.


Jam*_*olk 3

这个问题于 2006 年在Sun JSSE 论坛上提出。最重要的是,它似乎只发生在 Windows java 运行时。在此错误报告中,底部是一个建议的解决方案。这是另一个建议的解决方案

基本上,SSL 握手期间的反向 DNS 查找会导致长时间超时。

要解决此问题,请将服务器地址缓存为 InetAddress 对象,并在每次与服务器建立新连接时在 Socket 构造函数中重用它。

希望其中之一对您有用。