首页 > 技术文章 > Wordpress开启全站HTTPS需要做的事

willLin 2019-11-25 11:16 原文

Wordpress开启全站HTTPS需要做的事

需要准备什么

SSL证书,可以通过 Let’s Encrypt 的免费SSL证书获取。

获取Certbot

Certbot 是一个简单易用的 SSL 证书部署工具,由 EFF 开发,前身即 Let’s Encrypt 官方(Python)客户端。简单来说,certbot 就是一个简化 Let’s Encrypt 部署,和管理 Let’s Encrypt 证书的工具。certbot的开源项目在GitHub上,所以,我们的第一步,是clone certbot项目到本地:

git clone https://github.com/certbot/certbot

申请证书

现在,可以通过脚本来申请证书了,以我的域名为例:

cd certbot./letsencrypt-auto certonly -d www.flywill.cn -d flywill.net

出现如下的证书申请与安装界面:

img

选择第二个选项,OK并继续。界面会提示证书申请成功的信息,表示证书已经成功生成。

需要注意的是,在申请证书之前,如果本机有运行Nginx,需要先停掉。并确认本机的443端口能被公网所访问

配置证书

申请好的证书,包含四个文件,默认会放在这里:

/etc/letsencrypt/live/www.flywill.cn/fullchain.pem/etc/letsencrypt/live/www.flywill.cn/privkey.pem/etc/letsencrypt/live/www.flywill.cn/cert.pem  /etc/letsencrypt/live/www.flywill.cn/chain.pem

有了这些证书文件,我们就可以去配置我们的Nginx了,实际上,我们用两个证书文件就行了,一个是带私钥的文件,一个是带公钥的文件。拿我的Nginx配置文件举个栗子:

server {
        listen 80 default; #默认监听80的HTTP端口; 
        listen 443 ssl; #确保Nginx监听HTTPS的443端口

        # SSL证书配置
        ssl_certificate /etc/letsencrypt/live/www.flywill.cn/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/www.flywill.cn/privkey.pem;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_session_cache shared:SSL:10m;
        ssl_session_timeout 10m;

        root /home/xiaozhou;
        index index.html index.htm;

        server_name flywill.cn www.flywill.cn;
}

配置好之后,直接用Nginx reload配置即可。

证书的验证

证书配置好了,我们就可以直接用浏览器通过https地址来访问和验证证书了,比如:https://flywill.cn

我们会看到地址栏的前面有一把小锁,嗯,咱是有证书的人了!

点击查看证书,还可以看到申请到的证书的详细信息,Let’s Encrypt签发的,货真价实。

如果网站能打开但是还是显示不安全的链接,打开F12,console页签下会显示有些资源文件事以HTTP形式加载的,需要去Wordpress后台修改,一般在这两处地方修改就可以了。

其余文章内的链接可以通过这个SQL修改:

UPDATE wp_posts SET post_content = replace( post_content, 'http域名','https域名');

证书的自动续期

最后一步,就是证书的自动续期了。Let’s Encrypt的证书,默认的有效期是90天,不过官方推荐每60天续期。到期之后,我们需要用命令来为证书续期,不过我们是懒人,这种体力活还是交给机器来完成比较合适。所以,我们可以用Linux的cron job来完成这类的任务,配置cron job,每两个月的第一天,执行下面的命令:

#minute hour day month day_of_week    command    0     0    1   */2      *          /letsencrypt/certbot-auto renew --post-hook "systemctl reload nginx"

注意在cron job里面需要用绝对路径

完结

简单的六步,我们轻轻松松的就申请了证书,并给blog开启了https访问,还给证书设置了自动续期,嗯,多亏了certbot这个工具,相比起当初申请StarSSL的各种繁琐,一切实在是来得太方便了。

后续

配置完以上信息以后,网站已经可以使用https访问,不出意外chrome浏览器访问应该也能出现小绿锁了。后续的话,也可以做一下以下优化配置:

  • 建议可以做301重定向,将http地址跳转到https地址;
  • 启用https网站打开速度可能会变慢,建议启用缓存,例如wp super cache;

欢迎转载,转载请注明出处!
独立域名博客:flywill.com
欢迎关注公众微信号:Java小镇V
分享自己的学习 & 学习资料 & 生活
想要交流的朋友也可以加微信号备注入群:EscUpDn

推荐阅读