标准java SSL套接字是否有办法禁用与属性的ssl连接的主机名验证?我到目前为止找到的唯一方法是编写一个主机名验证程序,它始终返回true。
Is there a way for the standard java SSL sockets to disable hostname verfication for ssl connections with a property? The only way I found until now, is to write a hostname verifier which returns true all the time.
Weblogic提供了这种可能性,可以使用以下属性禁用主机名验证:
Weblogic provides this possibility, it is possible to disable the hostname verification with the following property:
-Dweblogic .security.SSL.ignoreHostnameVerify
-Dweblogic.security.SSL.ignoreHostnameVerify
推荐答案应该可以创建自定义 java代理覆盖默认 HostnameVerifier :
It should be possible to create custom java agent that overrides default HostnameVerifier:
import javax.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启动参数。
Then just add -javaagent:LenientHostnameVerifierAgent.jar to program's java startup arguments.
更多推荐
Java SSL:如何禁用主机名验证
发布评论