2017-06-21 27 views
1

尝试使用soap web服务,即“https://”类型。在我的AppConfig.java中设置系统属性。获取java.lang.IllegalArgumentException:仅启用SSLv3 - 将com.ibm.jsse2.disableSSLv3设置为TRUE

@PostConstruct 

public void init(){ 

Security.setProperty("ssl.SocketFactory.provider", 
      "com.ibm.jsse2.SSLSocketFactoryImpl"); 
    Security.setProperty("ssl.ServerSocketFactory.provider", 
      "com.ibm.jsse2.SSLServerSocketFactoryImpl"); 
    System.setProperty("java.protocol.handler.pkgs", 
      "com.ibm.net.ssl.internal.www.protocol"); 

    try { 
     if(trustStore!= null){ 
      File certFile = new File(trustStore); 
      if(certFile.exists()){ 
       System.setProperty("https.protocols", "SSLv3"); 
       System.setProperty("javax.net.ssl.trustStore", trustStore); 
       System.setProperty("javax.net.ssl.trustStorePassword",trustStorePassword); 

       System.setProperty("javax.net.ssl.keyStore", trustStore); 
       System.setProperty("javax.net.ssl.keyStorePassword",trustStorePassword); 
       String trustStoreType = "JKS"; 
       System.setProperty("javax.net.ssl.trustStoreType",trustStoreType); 
       System.setProperty("javax.net.debug", "SSL"); 
       printSysProps(); 
      }}catch(Exception e){...} 

请帮我解决这个问题。

回答

0

您可以尝试设置系统属性,如下图所示:

System.setProperty("com.ibm.jsse2.disableSSLv3", "false"); 
+0

感谢您的建议,我试着设置并获得异常 org.springframework.ws.client.WebServiceIOException:I/O错误:com.ibm.jsse2.util.j:PKIX路径构建失败:java.security。 cert.CertPathBuilderException:PKIXCertPathBuilderImpl无法构建有效的CertPath。内部原因是: – expguy

1

此错误是回来了,因为后来的Java版本在默认情况下禁用SSLv3的协议。因此,当您尝试在代码中设置并使用SSLv3协议时,它会抱怨,因为它被禁用。

SSLv3不再被认为是安全的,所以真的不应该使用它。如果您尝试与之通信的服务器支持更新的更安全的TLS协议,我会建议尝试这些。

我不会在您的Java安装上启用SSLv3,因为除非您绝对需要,否则您建议您可以这样做。

相关问题