0

有効なSSL証明書(自己署名SSL証明書を使用)を使用して実行しているかどうかを確認するリモートサーバーがあります。Apache HTTPクライアントAPIを使用してリモートサーバーの信頼されていないSSL証明書を取得する方法

リモートサーバーに接続していますが、リモートサーバーが自己署名SSL証明書を使用していると失敗することがあります。 SSLハンドシェイクが失敗した場合、リモートサーバ証明書をダウンロード/表示できるようにしたいと考えています。

Apache HTTPクライアントを使用すると、リモートサーバー証明書を表示する方法が見つからない場合があります(HttpsURLConnectionで行うことができますが、私たちはsee this exampleを使用しないようにしています)。

また、私はSpring RestTemplateを調べましたが、いずれもオプションを提供しませんでした。私はGoogleで検索し、SpringまたはApache HTTP Clientの周りに何も見つかりませんでした。

答えて

1

これにより、信頼性検証のプロセスを完全に制御することができます。

SSLContext sslContext = SSLContextBuilder.create() 
     .loadTrustMaterial((chain, authType) -> { 
      for (X509Certificate cert: chain) { 
       System.out.println(cert.getSubjectDN()); 
      } 
      // Let the standard trust managers decide 
      // whether or not the cert chain is trusted 
      return false; 
     }) 
     .build(); 

CloseableHttpClient client = HttpClientBuilder.create() 
     .setSSLContext(sslContext) 
     .build(); 
関連する問題