这里记录的主要是apache针对ssl的以下问题进行配置:
1.没有优先使用FS系列加密套件,降级为B
2.因为使用RC4密码套件,降级为B
配置方案:
一.通过设置合适的加密套件(避免使用RC4套件,除非要兼容IE6,IE8(它们使用的是SSL2和SSL3协议))以及SSL协议可以消除2;
SSLProtocol TLSv1 TLSv1.1 TLSv1.2
SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4:!DH:!DHE
二.打开apache配置SSLHonorCipherOrder on可以消除1;
SSLHonorCipherOrder on
三.通过设置Header: Strict-Transport-Security "max-age=31536000" 可以提升到A+. (max-age的时间不能小于15552000)
<IfModule headers_module>
Header add Strict-Transport-Security "max-age=31536000"
</IfModule>
附:
以下是按照安全性从低到高,兼容性从高到低的三种加密套件配置方法:
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH;
ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256::!MD5;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
参考:https://blog.myssl.com/https-security-compatibility-best-practices/#a