繁体   English   中英

如何配置Tomcat在出站连接中使用TLS v1.2

[英]How to configure Tomcat to use TLS v1.2 in OUTBOUND connections

我的Web应用程序正在使用Apigee背后的REST服务(是该客户端的客户端),现在当Apigee仅要求与TLS v1.2通信时,作为该REST服务的客户端,我们还将收到通知,如果我们请勿将我们的网络应用配置为使用较新版本的TLS。

我正在使用Java 7和Tomcat 7,我知道这些Java和Tomcat开箱即用地支持TLS v1.2连接,但是由于我仅将Tomcat用作HTTP和出站代理,因此我没有在Tomcat服务器上配置SSL / TLS用于SSL通信。

问题1:
有什么方法可以检查正在Tomcat上发送我的Web应用程序的请求类型,仅接受TLS v1.2的服务器会拒绝那些请求吗?

问题2:
如果默认情况下未配置它,如何在Tomcat上配置它? 我已经从官方文档中找到了这个,但是我想知道这是否只会影响INBOUND或OUTBOUND连接。

有什么方法可以检查正在Tomcat上发送我的Web应用程序的请求类型,仅接受TLS v1.2的服务器会拒绝那些请求吗?

使用系统属性javax.net.debug=ssl运行-通常最好在CATALINA_OPTS中的setenv.shsetenv.bat尽管可能还有其他方法-并捕获写入标准输出的大量跟踪信息-如何做到这一点取决于您的环境。 这将记录JVM进程中的所有 SSL / TLS连接,但是由于您没有使用SSL / TLS(HTTPS)入站,因此这应该不是问题。

或者,使用Wireshark或tcpdump或类似工具从网络捕获。 这可能需要root或某些(Linux)功能,但可以过滤到仅感兴趣的连接。

是的,如果您(通过Java)发送的握手不提供1.2,并且服务器仅(需要)1.2,则握手将失败。

如果默认情况下未配置它,如何在Tomcat上配置它? 我已经从官方文档中找到了这个,但是我想知道这是否只影响INBOUND或OUTBOUND连接。

是的,这仅影响入站SSL / TLS(HTTPS)连接。 Tomcat代码通常仅处理入站HTTP或HTTPS连接; 任何出站连接在您的代码或您调用的库代码(例如数据库驱动程序)中都是显式的。

Oracle Java 7的免费版本实现 TLS 1.2,但默认情况下(对于客户端)也禁用 TLS(和1.1)。 如何更改此方法取决于您的代码如何建立连接(例如通过哪个库),而您未提供任何有关此信息。 关于此有很多 Stack问题(许多年前),例如:

https://superuser.com/questions/747377/enable-tls-1.1-and-1.2-for-clients-on-java-7
获取javax.net.ssl.SSLException:在使用Jsoup抓取数据时收到致命警报:protocol_version
在JDK7客户端上启用TLS 1.2
如何在Win10 / Tomcat7 / Java7上从Web应用程序启用TLSv1.1 +出站通信?
服务器关闭使用httpclient和Java 7建立的连接
SSLHandshakeException:握手期间远程主机关闭连接
如何在Java 7中启用TLS 1.2
TLS 1.2在Java 8中受支持,但在Java 7中不受支持

最后两点指出,如果您购买了Oracle支持合同,则只需升级到7u131(或更高)。 或者(如果可以)使用OpenJDK。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM