0%

wordpress 博客全站开启https

本博客从17号开启全站https以来,观察几天,感觉不错。

本文介绍博主Https配置过程

包括如下内容

  • 免费证书获取
  • apache ssl配置
  • 开启ssl后需要注意的事项 ps: 本文是apache下的开启方式,若用nginx,见 LNMP站点配置指南

https优缺点

 

申请证书

ssl验证需要证书,这里只说明免费的证书:

  • Let's Encrypt

    • 是国外一个公共的免费SSL项目,由 Linux 基金会托管,它的来头不小,由Mozilla、思科、Akamai、IdenTrust和EFF等组织发起
    • 免费三个月,三个月后重新申请即可
    • 关于其申请可以参考本博客: Centos 获取 Let’s Encrypt 证书
  • startSSL

    • 个人免费一年
  • 沃通

    • 博主申请的这个,免费两年
    • 证书其实是startSSL发布的

由于沃通申请太简单,博主这里就略过了。

证书部署

以沃通的证书为例(其他除了申请不一样但配置都是一样的)。

申请后下载的验证包如下:

https-wosign

从上到下分别是私钥、公钥、证书链

  • 上传这三个文件到服务器目录下

  • 安装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
2
3
UPDATE wp_posts 
SET post_content = ( Replace (post_content, 'http://www.hrwhisper.me', 'https://www.hrwhisper.me') );

  • 301重定向HTTP URL到HTTPS(修改.htaccess文件)
1
2
3
4
5
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</IfModule>
  • 如果你用了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"

最终结果:

https-ssllabs-result

参考资料

请我喝杯咖啡吧~