AMH 社区首页
AMH社区 - 开放自由有价值的社区
[求助帖] [玩转https②]如何让你的SSL更安全?(Let's Encrypt实战) |
|
---|---|
mikifuns |
mikifuns 发表于 2016-05-28 11:50:11
上期链接
上次咱们说到了如何给amh弄那个Let's Encrypt 给自己的网站后,我也是满怀激动的心情去弄了下,但是在通过ssllabs测试的时候却仅仅给了个B 嗯原因很简单 咱们开启了RC4套件结果这个套件还是不安全的 woc这尼玛不能忍啊,都弄SSL了你还告诉我居然不安全?!! 所以本讲,我来告诉大家如何让你的SSL更安全~ [hr]首先咱们知道了是协议的不安全,那么我也是百度了下都是需要更改conf来达到目的的.当然哪些方法对咱们amh都没用!! 所以这里传授给大家我所摸索出来的方法: 首先明确你要设置的环境ssl是否配置好,而且要知道你的环境名.这里以环境名为com 网站所在的主机的标识域名为com为例.环境为Apache2.4 Php5.6 网站举例为www.mikifuns.com 我们打开: /home/wwwroot/环境名/vhost 文件夹,以这里为例的话就是/home/wwwroot/com/vhost 后,我们会看到这些文件:这里的com-https.conf就是我们需要的.打开它(建议使用NotePad+),我们会看到这样的文档: <VirtualHost *:443> 这里我们需要打开一个网站:ServerName com ServerAlias www.mikifuns.com mikifuns.com DocumentRoot /home/wwwroot/环境名/domain/标识域名/web DirectoryIndex index.html index.htm index.php RewriteEngine On Include /home/wwwroot/环境名/rewrite/amh.conf #error_page ErrorDocument 400 /ErrorPages/400.html ErrorDocument 403 /ErrorPages/403.html ErrorDocument 404 /ErrorPages/404.html ErrorDocument 502 /ErrorPages/502.html RewriteCond %{DOCUMENT_ROOT}%{REQUEST_FILENAME} -f RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-f RewriteRule ^(.*\.php(/.*)?)$ $1 [PT] ProxyPassMatch ^/(.*\.php(/.*)?)$ unix:/tmp/php-cgi-com-com.sock|fcgi://127.0.0.100:9000/home/wwwroot/环境名/domain/标识域名/web ProxyErrorOverride Off SSLEngine On SSLCertificateFile /home/wwwroot/环境名/etc/标识域名-ssl/<span style="line-height: 1.5;">标识域名</span><span style="line-height: 1.5;">.crt</span> https://mozilla.github.io/server-side-tls/ssl-config-generator/ 然后根据情况来输入你的环境信息: (具体情况自行输入,本文以amh的2.4.18为例,OpenSSL Version要自己查看.) 然后你会看到这样的代码: # modern configuration, tweak to your needs *↑如果你的环境跟我的一样,可以直接复制.SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1 SSLCipherSuite ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256 SSLHonorCipherOrder on SSLCompression off SSLSessionTickets off 直接复制到刚才的文档里(在</VirtualHost> 后粘贴) </VirtualHost> 然后保存,去amh后台重载apache.现在再去测试,是不是A了~# modern configuration, tweak to your needs SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1 SSLCipherSuite ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256 SSLHonorCipherOrder on SSLCompression off SSLSessionTickets off 啥,你想上A+? 那好吧,接下来就是教你如何成为满分达人~ 警告,如果你不能保证你的网站: 1.全站Https 并且不包含大量的Http元素(https中包含http的元素会被警告而且不显示绿锁头) 2.全站稳定并且确定不会取消https 那么,请不要进行以下操作!因为以下操作一旦进行,将基本上不可逆而且如果后来取消掉Https的话会对很对用户造成重大影响!(具体请百度:什么是HSTS) [hr] 既然你看到这里了,那么你就是确认上面的警告看过了哈,那么咱们开始. 很简单,还是刚才的文件,在</VirtualHost> 前面粘贴 # HSTS (mod_headers is required) (15768000 seconds = 6 months) tip:这里的"max-age=15768000" 代表的是有效期为6个月(计数单位为秒),可以根据实际情况修改.Header always set Strict-Transport-Security "max-age=15768000" [hr]就像这样: 然后保存,并重启apache就好了.然后再测试,你的网站完美上A+了 [hr]影响: 在接下来的一年(即31536000秒)中,浏览器只要向xxx或其子域名发送HTTP请求时,必须采用HTTPS来发起连接。比如,用户点击超链接或在地址栏输入 http://www.example.com/ ,浏览器应当自动将 http 转写成 https,然后直接向 https://www.example.com/ 发送请求。 在接下来的一年中,如果example.com 服务器发送的TLS证书无效,用户不能忽略浏览器警告继续访问网站.这意味着如果你在配置完这个功能后想弄掉https的话,基本上不可能了..这会影响 你的用户最少6个月(根据你上面的那个参数设定决定.) [hr]最后祝大家都能让自己的网站更安全,欢迎访问我的博客查看效果:https://mikifuns.com
点赞,加油! (1分)
2016-05-28 11:50:11 1
|
WVC |
还有加强空间,吧openssl升级到1.0.1g或者更高版本。
回复
2016-05-28 12:02:08 2
|
lovem |
好高大上的样子
回复
2016-05-28 12:37:03 3
|
lovem |
不知道兼容性怎样?
回复
2016-05-28 12:39:11 4
|
mikifuns |
回复
2016-05-28 12:56:37 5
|
mikifuns |
回复
2016-05-28 12:56:56 6
|
lovem |
回复
2016-05-28 13:14:47 7
|