2017-10-23 3 views
1

TcpSSLContextSupportというインスタンスを使用している春のドキュメントに基づいて、SSLを使用してTCP接続を構成するときは、DefaultTcpSSLContextSupportからクライアント証明書を初期化する必要があります。ここに私たちの豆の設定です:証明書を提供する必要がない場合に、SSL接続のTcpNetClientConnectionFactoryを設定する正しい方法は何ですか?

​​

クライアント証明書が知られている証明書であり、我々は我々自身のキーストアおよびトラストストアを提供する必要はありませんので、これはTCP接続を作成しながら、適切にSSLを設定するための正しい方法は何ですか?

答えて

1

これは正確にあなたのカスタムSSLContextConnectionFactoryに注入する方法です。

また、そのあなたの文脈における「信頼のすべて」を検討することがあります。あなたも店舗を空にすることを指すことができるはずですので、クライアント認証は、デフォルトではオフになっていることを

TrustManager[] trustAllCerts = new TrustManager[] { 
     new X509TrustManager() { 
      public X509Certificate[] getAcceptedIssuers() { 
       X509Certificate[] myTrustedAnchors = new X509Certificate[0]; 
       return myTrustedAnchors; 
      } 

      @Override 
      public void checkClientTrusted(X509Certificate[] certs, String authType) {} 

      @Override 
      public void checkServerTrusted(X509Certificate[] certs, String authType) {} 
     } 
    }; 

    SSLContext sc = SSLContext.getInstance("SSL"); 
    sc.init(null, trustAllCerts, new SecureRandom()); 
    return sc; 
+1

注意。私たちは[ここにテストケースがあります](https://github.com/spring-projects/spring-integration/blob/master/spring-integration-ip/src/test/java/org/springframework/integration/ip/tcp/connection/socketSupportTests.java#L339-L346)を使用して、クライアント認証を有効にします。 –

+0

両方ともありがとう、テストケースは非常に明確になっています:) –

関連する問題