Man*_*anu 10 java security ssl tomcat
当REST客户端尝试连接到我的应用程序时,我需要记录SSL握手是否失败.该应用程序使用Spring Boot和Java 8构建,并部署在Tomcat 8上.
在SSL握手失败的情况下,由于TLS连接中断,因此可能必须在Tomcat层或Java中完成日志记录要求,因为Tomcat在我的情况下使用底层JVM进行SSL证书验证.
<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" />
Run Code Online (Sandbox Code Playgroud)
我知道启用调试级别日志记录.
-Djavax.net.debug = SSL
但这会记录大量信息并会减慢进程.并记录成功的SSL条件.有没有办法单独使用Java或Tomcat级别的最小日志来启用故障案例.
我不是从调试的角度看这个,因为SSL调试日志非常好.此要求更多来自日志记录和审计目的,并且启用调试日志不是一个可行的选项.仅记录SSL发生的错误而不是所有十六进制/证书数据的机制.
不幸的是,这是不可能的。并且它与Tomcat无关。SSL 的日志记录它不是应用程序中标准日志记录的一部分。您可以尝试使用以下选项减少输出:
-Djava.net.debug=handshake
Run Code Online (Sandbox Code Playgroud)
其他一些:
请参阅文档。
如果您真的需要这个并且性能对您的应用程序至关重要,您可以使用ASM / Btrace /etc检测SSLSocket(在文档中您可以阅读有关握手过程的信息)并检查其中的握手状态。但在这种情况下,您将没有调试信息 - 只有 true/false。
另请参阅包含所有可用设置的Tomcat 文档。在那里你可以读到有JSSEImplementation类,它在 Tomcat 中使用。它是 JSSE 的包装器。
归档时间: |
|
查看次数: |
11350 次 |
最近记录: |