有没有办法让标准 java SSL 套接字禁用带有属性的 ssl 连接的主机名验证?到目前为止,我发现的唯一方法是编写一个始终返回 true 的主机名验证程序。
Weblogic 提供了这种可能性,可以使用以下属性禁用主机名验证:
-Dweblogic.security.SSL.ignoreHostnameVerify
最佳答案
应该可以创建自定义java agent覆盖默认的 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 启动参数中。
关于Java SSL : how to disable hostname verification,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6031258/