2015-11-11 94 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