当前位置: 首页 > 知识库问答 >
问题:

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

萧奇
2023-03-14

我的web应用程序正在使用Apigee背后的某个REST服务,现在Apigee只需要与TLS v1通信。2.作为REST服务的客户,我们还收到通知,如果我们不将web应用配置为使用更新版本的TLS,我们的请求将被拒绝。

我正在使用Java 7和Tomcat 7,我知道这些Java和Tomcat支持TLS v1。2个现成的连接,但我在Tomcat服务器上没有配置SSL/TLS,因为我只将Tomcat用作SSL通信的HTTP和出站代理。

问题1:
有没有办法检查Tomcat上发送我的web应用程序的请求类型,以及这些请求是否会被只接受TLS v1的服务器拒绝。2.

问题2:
如果默认情况下没有配置,如何在Tomcat上配置?我从官方文件中发现了这一点,但我想知道这是否只会影响入站连接,还是也会影响出站连接。

共有1个答案

严言
2023-03-14

是否有任何方法可以检查在Tomcat上发送我的Web应用程序的请求类型,以及仅接受TLS v1.2的服务器是否会拒绝这些请求?

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

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

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

如果默认情况下没有配置,如何在Tomcat上配置它?我从官方文件中发现了这一点,但我想知道这是否只会影响入站连接,还是也会影响出站连接。

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

Oracle Java 7的免费版本实现了TLS 1.2,但默认情况下在客户端禁用了它(以及1.1)。如何改变这一点取决于您的代码如何建立连接,比如通过哪个库,而您没有提供任何相关信息。关于这一点有很多问题(很多年前),比如:

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

最后两点指出,如果你支付Oracle支持合同的费用,你只需升级到7u131(或更好)。或者如果你可以使用OpenJDK。

 类似资料:
  • 我正在尝试使用python中的请求库向服务器发送POST调用。早些时候,我能够成功地发送POST调用,但最近,服务器弃用了TLSv1。0,现在只支持TLSv1。1和TLSv1。2.现在,同一代码向我抛出了一个“requests.exceptions.SSLError:EOF违反了协议(_ssl.c:590)”错误。 我发现这个线程在stackoverflow Python请求requests.ex

  • 我想在应用程序和Oracle数据库之间建立连接。我没有以下数据库信息: URL 用户名 密码 我使用的配置如下所示: 这就是我如何获得一个新的实例: 之后,我尝试通过以下代码检索会话: null 但是,使用以下堆栈跟踪生成错误:

  • 我使用EclipseLink作为使用Play框架和Akka的应用程序的持久性提供程序。在play framework 2.3.x中,应用程序正常运行。现在我正在迁移到2.4.x,随后将迁移到2.5.x,但是当我从eclipse外部运行应用程序时遇到了一些问题: “没有名为Default的EntityManager的持久性提供程序”。 随着Play Framework连接池库从BoneCP更改为Hi

  • 我在$CATALINA_HOME/lib下有log4j2jar: log4j-api-2.10.0.jar log4j-core-2.10.0.jar log4j-jul-2.10.0.jar export JAVA_OPTS=“${JAVA_OPTS}-djava.util.logging.manager=org.apache.logging.log4j.jul.logmanager” 我已经删

  • 我正在学习如何使用Scala和Play 2 Framemork构建应用程序。我使用activator工具创建了一个新项目,它基于当前的“play scala intro”模板。 该模板有一个使用Play-Slick 1.0管理依赖项的示例应用程序,并配置了一个H2 DB,可以正常工作。 当我尝试更改为Postgres DB时,我遇到了麻烦。我得到一个错误500,告诉我: “无法连接到数据库[默认设

  • 要连接到以太坊测试网,是这样的: (摘自此处:https://hardhat.org/tutorial/deploying-to-a-live-network.html ) 如何为RSK Testnet添加网络配置? (请注意,我使用的是种子短语,而不是原始私钥)