我有几台运行Tomcat 7.0且带有APR + SSL连接器的生产服务器,由于最近的POODLE攻击,我被要求在其中一些服务器中完全禁用SSLv3。我深入研究了Tomcat Connectors文档,根据它,将SSLProtocol
设置为TLSv1
(而非all
应该足以禁用SSLv3并强制执行TLSv1。
问题是TLSv1
似乎启用了TLS,但没有让服务器拒绝SSLv3。我使用openssl s_client -connect -ssl3
对此进行了测试,并且我验证了仍然可以接受普通的SSLv3连接,因此我想知道这是否是Tomcat中的错误,或者是否还有其他东西需要设置为完全禁用SSLv3。
更新:我暂时禁用了APR并恢复使用带有sslProtocol="TLS"
的NIO连接器,并且工作正常。这个问题似乎特别影响了APR。作为参考,这是我的新连接器配置:
<Connector port="443"
protocol="org.apache.coyote.http11.Http11NioProtocol"
SSLEnabled="true"
maxThreads="500"
scheme="https"
secure="true"
clientAuth="false"
keystoreFile="/etc/keys/***.ks"
keystorePass="****"
sslProtocol = "TLS"
sslEnabledProtocols="TLSv1.1,TLSv1.2"
/>
答案 0 :(得分:2)
在使用带有TLS的APR连接器时,似乎能够完全禁用SSL仍然是一项工作正在进行中。请查看此链接以获取更多信息:https://issues.apache.org/bugzilla/show_bug.cgi?id=53952#c30,特别是评论#37。
好消息是它将在Tomcat和Tomcat Native的下一个版本中得到修复。见评论#39:
Fixed in tcnative-trunk in r1632593 and tcnative-1.1.x in r1632595.
Will be in tcnative 1.1.32.
和评论#40:
Fixed in Tomcat-trunk in r1632604. Will be in Tomcat 8.0.15.
Fixed in Tomcat 7 in r1632606. Will be in Tomcat 7.0.57.