Java SSL:如何禁用主机名验证

新手上路,请多包涵

有没有办法让标准 java SSL 套接字禁用 ssl 与属性连接的主机名验证?到目前为止我发现的唯一方法是编写一个始终返回 true 的主机名验证程序。

Weblogic 提供了这种可能性,可以使用以下属性禁用主机名验证:

-Dweblogic.security.SSL.ignoreHostnameVerify

原文由 paweloque 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1k
1 个回答

应该可以创建覆盖默认值的自定义 java 代理 HostnameVerifier

 import javax.net.ssl.*;
import java.lang.instrument.Instrumentation;

public class LenientHostnameVerifierAgent {
    public static void premain(String args, Instrumentation inst) {
        HttpsURLConnection.setDefaultHostnameVerifier(new HostnameVerifier() {
            public boolean verify(String s, SSLSession sslSession) {
                return true;
            }
        });
    }
}

然后只需将 -javaagent:LenientHostnameVerifierAgent.jar 添加到程序的 java 启动参数中。

原文由 Vadzim 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题