WordPress全站开启HTTPS

现如今的互联网时代,是一个并不安全的时代

HTTP协议明文传输数据,使得中间人攻击成为可能,篡改网页、盗取信息、关键词阻断链接……

而强加密的HTTPS协议无疑是这一切的克星,证书的验证让你和服务器之间的连接更为安全

越来越多的网站开始启用HTTPS,那如何让WordPress也启用HTTPS,来保护博客网页不被篡改呢?

HTTPS尽管比HTTP更加安全,但其会极大消耗有限的服务器资源,并使网站打开速度变慢,且由于WordPress大量插件并非为了HTTPS而设计,全站开启HTTPS后可能出现大量兼容性问题,并导致浏览器报警,一般情况下,只建议大家为后台和登录页面开启HTTPS,保证控制台安全。

申请SSL证书

要开启HTTPS,我们首先必须要申请一个SSL证书

现在大部分的SSL证书都是收费的,免费SSL证书著名的有沃通和Symantec的

这里我推荐本博客使用阿里云自带的的Symantec免费SSL证书,5分钟证书签发、部署简单。

云盾证书申请地址

 免费型DV SSL证书只支持一个域名,不支持通配符域名,如果有二级域名也要做https访问就需要申请多次。

按要求申请,5分钟签发,点击下载

 

 

 

 

 

 

 

 

 

 

选择要下载的证书类型,我这里用Apache

证书文件说明

1. 证书文件214070180940176.pem,包含两段内容,请不要删除任何一段内容。

2. 如果是证书系统创建的CSR,还包含:证书私钥文件214070180940176.key、证书公钥文件public.pem、证书链文件chain.pem。

( 1 ) 在Apache的安装目录下创建cert目录,并且将下载的全部文件拷贝到cert目录中。如果申请证书时是自己创建的CSR文件,请将对应的私钥文件放到cert目录下并且命名为214070180940176.key;

( 2 ) 打开 apache 安装目录下 conf 目录中的 httpd.conf 文件,找到以下内容并去掉“#”:

#LoadModule ssl_module modules/mod_ssl.so (如果找不到请确认是否编译过 openssl 插件) #Include conf/extra/httpd-ssl.conf

( 3 ) 打开 apache 安装目录下 conf/extra/httpd-ssl.conf 文件 (也可能是conf.d/ssl.conf,与操作系统及安装方式有关), 在配置文件中查找以下配置语句:

# 添加 SSL 协议支持协议,去掉不安全的协议
SSLProtocol TLSv1 TLSv1.1 TLSv1.2

# 修改加密套件如下
SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4

# 证书公钥配置
SSLCertificateFile cert/public.pem


# 证书私钥配置
SSLCertificateKeyFile cert/214070180940176.key


# 证书链配置,如果该属性开头有 '#'字符,请删除掉
SSLCertificateChainFile cert/chain.pem

( 4 ) 重启 Apache。

( 5 ) 通过 https 方式访问您的站点,测试站点证书的安装配置,如遇到证书不信任问题,请查看相关文档

下载后按要求设置好

WordPress后台及登录页面强制HTTPS

WordPress最需要HTTPS保护的就是后台和登录页,而且由于访问少,对服务器的压力几乎可以忽略不计,并且不会遇到兼容性问题,所以我建议大家在后台和登录页强制HTTPS

开启的方法非常简单,在wp-config.php中加入下面两行代码即可

接下来你的WP后台和登录页就会强制跳转到HTTPS啦,很方便

WordPress全站强制HTTPS
  • 修改wordpress 站点地址
    • “设置”→“常规”里的“站点地址”和“WordPress 地址”为 https;
  • 要确保网站的每个元素(如插件、JS、CSS文件、图片、内容分发网站等)都采用https协议:(可以在chromeF12看看有没有警报)
    • 修改“菜单”当中的所有“自定义链接”为 https;
    • 修改其他自己手贱写入的绝对链接的地址……
    •  替换文章所有的Http到https
      • 直接修改数据库(注意先备份注意先备份!!注意先备份!!!重要的事情说三遍!)
  • 301重定向HTTP URL到HTTPS(修改.htaccess文件)