本博客从17号开启全站https以来,观察几天,感觉不错。
本文介绍博主Https配置过程
包括如下内容
- 免费证书获取
- apache ssl配置
- 开启ssl后需要注意的事项 ps: 本文是apache下的开启方式,若用nginx,见 LNMP站点配置指南
https优缺点
https采用SSL(Secure Sockets Layer,安全套接字层)技术来保护网站,对浏览器和服务器传输数据进行加密,可以大幅增加中间人攻击成本,加强用户隐私
google 曾发布公告表示将把https作为网页排名的一个因素
Https会使网站打开速度变慢
关于https的原理技术可以看
申请证书
ssl验证需要证书,这里只说明免费的证书:
Let's Encrypt
- 是国外一个公共的免费SSL项目,由 Linux 基金会托管,它的来头不小,由Mozilla、思科、Akamai、IdenTrust和EFF等组织发起
- 免费三个月,三个月后重新申请即可
- 关于其申请可以参考本博客: Centos 获取 Let’s Encrypt 证书
startSSL
- 个人免费一年
沃通
- 博主申请的这个,免费两年
- 证书其实是startSSL发布的
由于沃通申请太简单,博主这里就略过了。
证书部署
以沃通的证书为例(其他除了申请不一样但配置都是一样的)。
申请后下载的验证包如下:
从上到下分别是私钥、公钥、证书链
上传这三个文件到服务器目录下
安装mod_ssl
- sudo yum install -y mod_ssl
复制三个文件分别到如下目录
- 私钥:/etc/pki/tls/private/
- 公钥和证书链: /etc/pki/tls/certs/
编辑ssl.conf,(文件名记得修改为你自己的):
sudo vim /etc/httpd/conf.d/ssl.conf
- SSLProtocol all -SSLv2 -SSLv3
- SSLCertificateFile /etc/pki/tls/certs/2_www.hrwhisper.me.crt
- SSLCertificateKeyFile /etc/pki/tls/private/3_www.hrwhisper.me.key
- SSLCertificateChainFile /etc/pki/tls/certs/1_root_bundle.crt
service httpd restart
- 重启服务器即可
在你的网址前加上https://看看访问正常么?
wordpress 开启了Https后必做的几件事
修改wordpress 站点地址
- “设置”→“常规”里的“站点地址”和“WordPress 地址”为 https;
要确保网站的每个元素(如插件、JS、CSS文件、图片、内容分发网站等)都采用https协议:(可以在chromeF12看看有没有警报)
修改“菜单”当中的所有“自定义链接”为 https;
修改其他自己手贱写入的绝对链接的地址……
替换文章所有的Http到https
- 直接修改数据库(注意先备份!注意先备份!!注意先备份!!!重要的事情说三遍!)
1 | UPDATE wp_posts |
- 301重定向HTTP URL到HTTPS(修改.htaccess文件)
1 | <IfModule mod_rewrite.c> |
- 如果你用了google search console,需要提交https的站点,并重新上传xml站点地图
测试安全性
可以在如下网址测试安全性:
博主一开始获得了B,问题是:
The server does not support Forward Secrecy with the reference browsers
还有一个说使用了RC4
于是继续配置ssl.conf文件 (vim /etc/httpd/conf.d/ssl.conf)
- SSLCipherSuite "EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM EECDH+ECDSA+SHA384 EECDH+ECDSA+SHA256 EECDH+aRSA+SHA384 EECDH+aRSA+SHA256 EECDH EDH+aRSA !RC4 !aNULL !eNULL !LOW !3DES !MD5 !EXP !PSK !SRP !DSS"
最终结果: