2015-11-11 78 views
0

我有一个像这样在服务器端禁用SSLV3:为什么我不能禁用SSLv3?

  char certPass[] = "***"; 
      char certAliaMainPass[] = "***";; 
      KeyStore keyStore = KeyStore.getInstance("JKS"); 
      keyStore.load(new FileInputStream(certPath), certPass); 
      KeyManagerFactory keyManagerFactory =   KeyManagerFactory.getInstance("SunX509"); 
      keyManagerFactory.init(keyStore, certAliaMainPass); 
      SSLContext sslContext = SSLContext.getInstance("TLS"); 
      sslContext.init(keyManagerFactory.getKeyManagers(), null, null); 
      SSLServerSocketFactory sslServerSocketFactory = sslContext.getServerSocketFactory(); 
      sslServerSocket = (SSLServerSocket) sslServerSocketFactory.createServerSocket(iPort); 

      String[] protocols = sslServerSocket.getEnabledProtocols(); 
      Set<String> set = new HashSet<String>(); 
      for (String s : protocols) { 
       if (s.equals("SSLv3")) { 
        continue; 
       } 
       set.add(s); 
      } 
      sslServerSocket.setEnabledProtocols(set.toArray(new String[0])); 

但客户端,它使用“的SSLv3”仍然可以连接到服务器,我怎么能对这个问题怎么办?

回答

0
  1. 转到Java安装文件夹。
  2. 在文本编辑器中打开{JRE_HOME}\lib\security\java.security -file
  3. 转到最后一行。
  4. 删除或注释掉以下行jdk.tls.disabledAlgorithms=SSLv3