2016-04-13 11 views
1

カスタムJavaアプリケーションサーバーを実行しています。私はいくつかの112ビット暗号のようなサーバーによってサポートされているいくつかの弱い暗号スーツがあることを見ている。私はそれらを無効にしたいどこでそれをすることができます。また、私はTLSv1.2を有効にしたいと思います。ソケットを初期化するコードは次のとおりです。sslのjavaアプリケーションサーバーで弱い暗号のスーツを無効にする方法

 KeyStore ks = KeyStore.getInstance("JKS"); 
     ks.load(new FileInputStream(sslstore), sslstorepass.toCharArray()); 
     KeyManagerFactory kmf = KeyManagerFactory.getInstance("SunX509"); 
     kmf.init(ks, sslcertpass.toCharArray()); 

     SSLContext sc = SSLContext.getInstance("TLS"); 
     sc.init(kmf.getKeyManagers(), null, new SecureRandom()); 
     SSLServerSocketFactory ssf = sc.getServerSocketFactory(); 
     serverSocket = ssf.createServerSocket(port); 

     System.out.println("Socket initialized"); 

答えて

1

JAVAは、暗号スイートは、ポリシーファイルでのごJRE: $PATH/[JRE]/lib/securityjdk.tls.disabledAlgorithmsプロパティに位置しjava.securityと呼ばれるセキュリティポリシーファイルでの使用から除外/削除TLS暗号の選択を制御することができます。 jdk.certpath.disabledAlgorithmsは、SSL証明書に含まれるアルゴリズムを制御します。あなたは以下のように入力された場合、Oracleは、セキュリティポリシーファイルでは、このhere

に関するより多くの情報を持っている:jdk.tls.disabledAlgorithms=MD5, SHA1, DSA, RSA keySize < 4096 MD5、SHA1、DSAが許可されることはありません、とRSAは、キーがである場合にのみ許可されるように、それは、それを作るだろう少なくとも4096ビット。

tlsバージョンの問題を解決します。ちょうどそれを置く必要がありますSSLContext sc = SSLContext.getInstance("TLSv1.2");それはすべてのバージョンをサポートします。

関連する問題