• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
WillLin
博客园    首页    新随笔    联系   管理    订阅  订阅

Wordpress开启全站HTTPS需要做的事

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

posted @ 2019-11-25 11:16  WillLin  阅读(1454)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3