我被要求在运行在CentOS 6上的Apache 2.2 Web服务器上为Rails应用启用TLS 1.0和1.1,以支持旧版浏览器。目前我有以下内容:
/etc/httpd/conf.d/virt-00.conf:
<VirtualHost 127.0.0.1:443>
ServerName subdomain.domain.com
Include conf/ssl-bits.conf
...
</VirtualHost>
...
/etc/httpd/conf/ssl-bits.conf:
TransferLog logs/ssl_access_log
LogLevel warn
SSLEngine on
SSLProtocol -SSLv2 -SSLv3 +TLSv1 +TLSv1.1 +TLSv1.2
SSLCipherSuite DEFAULT:!EXP:!SSLv2:!SSLv3:!RC4:!DES:!IDEA:!SEED:+3DES
SSLCertificateFile /etc/httpd/conf.d/star_domain.crt
SSLCertificateKeyFile /etc/httpd/conf.d/domain.key
SSLCACertificateFile /etc/httpd/conf.d/DigiCertCA.crt
<Files ~ "\.(cgi|shtml|phtml|php3?)$">
SSLOptions +StdEnvVars
</Files>
CustomLog logs/ssl_request_log \
"%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
据我所知,&#39; + TLSv1 + TLSv1.1&#39;应该是我需要打开TLS 1.0和1.1的所有内容,但是当我尝试访问带有MSIE且TLS 1.2关闭并且TLS 1.0和1.1打开的页面时,它告诉我:
此页面无法显示
在高级设置中启用TLS 1.0,TLS 1.1和TLS 1.2,然后尝试再次连接到https://subdomain.domain.com。如果此错误仍然存在,则此站点可能使用不受支持的协议。请联系网站管理员。
Qualys SSL服务器测试确认TLS 1.0和1.1未启用。 SSL请求日志不会显示任何内容。我只能认为它与SSLCipherSuite或它在子域上的事实有关。我为SSLProtocol尝试了几种不同的组合,例如&#39; + all -SSLv2 -SSLv3&#39;。
答案 0 :(得分:1)
似乎TLS 1.0和1.1需要我不允许的SSLv3密码。只需从SSLCipherSuite指令中删除它就可以解决问题。
答案 1 :(得分:0)
我不相信Apache2.2(相当过时)可以启用tls1.2协议。
但是,如果我错了,我建议您评论您提供的ssl-bits.conf内容,并将所有这些内容粘贴到VirtualHost中,然后将LogLevel warn
更改为LogLevel debug
,以便您可以看到实际内容apache引擎重新加载期间的错误消息(如果有)如果这不会有诀窍,请让我知道重启期间的整个错误(或error.log
的最后10行)