RESTクライアントがアプリケーションに接続しようとしたときにSSLハンドシェイクが失敗した場合、ログに記録する必要があります。アプリケーションは、Spring BootとJava 8を使用してビルドされ、デプロイされていますTomcat 8。
SSLハンドシェイクが失敗するシナリオでは、TLS接続が壊れているため、TomcatはSSL証明書の検証に基盤となるJVMを使用しているため、ロギング要件をTomcatレイヤーまたはJavaで実行する必要がある場合があります。
<Connector port="8443" protocol="org.Apache.coyote.http11.Http11NioProtocol" SSLEnabled="true" scheme="https" secure="true" keystoreFile="keyStore-1.jks" keystorePass="password" keystoreType="jks" truststoreFile="TrustStore.jks" truststorePass="passwrd" truststoreType="jks" clientAuth="want" sslProtocol="TLSv1.2" />
デバッグレベルのログを有効にすることを知っています。
-Djavax.net.debug = ssl
しかし、これは多くの情報を記録し、プロセスを遅くします。また、成功したSSL検証も記録します。 JavaまたはTomcatレベルのいずれかの最小ログで障害ケースのみを有効にする方法はありますか?.
SSLデバッグログは非常に有効であるため、これをデバッグの観点から見ていません。この要件は、ロギングと監査の目的からのものであり、デバッグログを有効にすることは実現可能なオプションではありません。SSLが発生するエラーのみを記録し、hex/certデータのすべてを記録するメカニズムではありません。
残念ながら、それはおそらく可能ではありません。また、Tomcatとは関係ありません。 SSLのロギングは、アプリケーションの標準ロギングの一部ではありません。次のオプションで出力を減らしてみてください:
-Djava.net.debug=handshake
他の何人か:
docs を参照してください。
これが本当に必要であり、アプリケーションにとってパフォーマンスが重要である場合、 SSLSocket (ドキュメントではハンドシェイクプロセスについて読むことができます)を [〜#〜] asm [〜#〜]で計測できます / Btrace /etcとその中のハンドシェイクの状態を確認します。しかし、その場合、デバッグ情報はありません-true/falseのみです。
Tomcat docs も参照してください。 Tomcatで使用されている JSSEImplementation クラスがあることがわかります。そしてそれはJSSEのラッパーです。
同じ問題が何度もあり、次のようにクラックしました。 intelliJでプロジェクトをセットアップしました。
*** CertificateRequest証明書タイプ:RSA、DSS、ECDSAサポートされている署名アルゴリズム:SHA512withRSA、不明(ハッシュ:0x6、署名:0x2)、SHA512withECDSA、SHA384withRSA、不明(ハッシュ:0x5、署名:0x2)、SHA384withECDSA、SHA256withRSA、不明( hash:0x4、signature:0x2)、SHA256withECDSA、SHA224withRSA、不明(hash:0x3、signature:0x2)、SHA224withECDSA、SHA1withRSA、SHA1withDSA、SHA1withECDSA認証局:
CN = Symantec Public Class 3、O = Symantec Corporation、C = US
CN = Symantec Class 3 Manage、OU = Symantec Trusted Network、O = Symantec、C = US
[読み取り] MD5およびSHA1ハッシュ:len = 302
解決策:不足している証明書を追加します(この例では、2つの証明書CN = Symantec Public Class 3およびCN = Symantec Class 3 Manage)。
sSLプロトコルによるサーバーとクライアント間の呼び出しを理解する必要があります。サーバーとクライアントの通信方法の詳細については、次のリンクを確認してください。
https://docs.Oracle.com/javase/6/docs/technotes/guides/security/jsse/JSSERefGuide.html#InstallProbs
問題が発生した場合は、YouTubeビデオデモを提供します。
この解決策が誰かを助けることを願っています。
ありがとうございました。