无法更新Apache SSL协议或密码

我一直在search和testing了几天,现在已经用完了。 这是我的问题。 我有一个使用OpenSSL 1.0.2g的Microsoft Windows 2008 R2服务器上运行的Apache Lounge 2.4.18(Win32)VC14 Web服务器。 我们的企业安全团队扫描了我的服务器,发现RC4正在被利用。 (他们使用Rapid7的Nexpose)。 他们build议configuration服务器以禁用对RC4密码的支持,并build议使用下面显示的密码configuration。 他们还build议不要使用TLSv1,只能使用TLSv1.1和TLSv1.2。 我也运行SSLScan来复制结果,可以看到“TLSv1 128 bits RC4-SHA”被接受。

没问题我想,并改变了我的httpd.conf文件,如下所示,然后重新启动Apache2.4服务。 然后我让他们重新扫描服务器,他们收到了相同的结果。 我search了整个服务器,查找包含“SSLCipherSuite”或“SSLProtocol”的文件,并删除或重命名了除\ Apache24 \ conf \ httpd.conf之外的所有文件。 我有一个\ Apache24 \ conf \ openssl.cnf文件,但我不认为它执行任何操作,因为它仍然是Apache自带的默认文件。 我也做了大量的清理工作,并删除了所有旧版本的Apache,OpenSSL和PHP。 大约三个星期前,我从Apache 2.2和OpenSSL 0.9.x升级了Apache和OpenSSL,并且运行正常。 我在error.log或windows事件查看器中没有任何启动错误。

Apache / OpenSSL是否还有其他地方确定协议或密码套件?

是否有一个默认的地方会忽略我的SSL相关指令?

我的httpd.conf文件的内容(“MYDOMAIN”显然不是我的实际域名):

<VirtualHost *:80> DocumentRoot "C:/Apache24/htdocs" ServerName www.MYDOMAIN.com </VirtualHost> <VirtualHost *:443> DocumentRoot "C:/Apache24/htdocs_apps" ServerName apps.MYDOMAIN.com SSLEngine on SSLCertificateFile "C:/Apache24/certs/233afff052190aeb.crt" SSLCertificateKeyFile "C:/Apache24/certs/star_MYDOMAIN_com.key" # SSLCertificateChainFile "C:/Apache24/certs/gd_bundle-g2-g1.crt" SSLProtocol -ALL +TLSv1.1 +TLSv1.2 SSLHonorCipherOrder On SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSAAES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSAAES256-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!3DES:!MD5:!PSK <Location / > Options -ExecCGI -FollowSymLinks -Indexes Require all granted </Location> </VirtualHost> 

任何帮助是极大的赞赏。

至于openssl.conf,是否有一个SSLCipherSuite指令,如果是的话,它是否被注释掉? 可能有一个“合并”问题。

看看你的SSLCipherSuite指令,我看到下面的问题(这可能是也可能不是这个问题的一部分):

错别字:

  • ECDHE-ECDSAAES256-GCM-SHA384可能应该是ECDHE-ECDSA-AES256-GCM-SHA384
  • 尽pipeTLSv1.0,DHE-RSAAES256-SHA可能应该是DHE-RSA-AES256-SHA

TLSv1.0协议:

  • DHE-RSA-AES128-SHA是TLSv1.0
  • DHE-DSS-AES256-SHA是TLSv1.0

无论如何,我使用:

 SSLCipherSuite ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!MD5:!DSS 

 SSLProtocol all -SSLv2 -SSLv3 

并从Qualys SSL实验室的SSL服务器testing (包括validation没有RC4)拉A +评级。

注意:虽然有些人正在丢弃TLSv1.0,但您可能会遇到许多浏览器的问题,可能包括Android 5.0.0和后退,Win 7上的IE 8-10,Win Phone 8.0上的IE 10,Safari 5.1.9在OS X 10.6.8上,以及在OS X 10.8.4上的Safari 6.0.4

啊成功! 事实certificate,我们的networking使用了一个“F5”设备,它使SSL连接,然后代理连接回到我的服务器。 看起来他们需要在他们的密码上工作! 由于这个小练习,我的服务器现在非常安全。 我也使用CloudFlare,所以连接使用TLSv1.1和TLSv1.2进行Cloudflare-> F5-> OpenSSL。

午餐时间。 我想知道我们是否还有两杯饮料午餐政策?

这听起来像F5设置可能是“入站企业”,而不是“入站SSL传递”。 看起来不同之处在于,用户到F5的前一个stream量通过F5 SSL设置被encryption,然后在F5解密,最后使用SSL设置重新encryption,仅用于F5和您的服务器之间的通信,而后者则encryption在用户和你的服务器之间完全使用你的SSL设置(并且只是通过F5传递,没有解密/重新encryption)。 如果出现这种情况,可能是因为您和F5之间的stream量只是“安全的”(无RC4),并且在公共networking上受到F5设置的支配。 在假设你有一个安全的设置之前,至less应该问你的networking人员一些问题。