我试图在 Tomcat 7.0.68 中禁用 SSLv3,但每次测试尝试仍然导致CONNECTED(00000003) 140680439531168:error:14077438:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert internal error:s23_clnt.c:770:
我已使用以下内容更新了 server.xml:
<Connector port="8444" protocol="org.apache.coyote.http11.Http11Protocol"
maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS" sslEnabledProtocols="TLSv1.2,TLSv1.1,TLSv1" ciphers="TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA, TLS_ECDHE_RSA_WITH_RC4_128_SHA,TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_128_CBC_SHA, TLS_RSA_WITH_AES_256_CBC_SHA256,TLS_RSA_WITH_AES_256_CBC_SHA,SSL_RSA_WITH_RC4_128_SHA" />
然后我重新启动 tomcat 并使用 openssl 进行测试:
openssl s_client -connect hdlp10-tc02:8444
同一服务器上的其他 2 个 tomcat 实例在修改了相同的 server.xml 后,工作正常。不同之处在于端口和上下文不同。
更新
从 tomcat 的新实例启动,配置 server.xml 并启动守护进程没有WAR 已部署。测试完毕,禁用 SSLv3,一切正常。
然后我部署了 WAR 文件并重新测试。测试失败,SSLv3 被作为握手发出。
此 WAR 文件中的某些内容正在破坏。这是一个 Spring 应用程序,没有嵌入 Tomcat(Spring Boot 之前)。
到底是什么原因导致这样的情况发生?