我的博客是部署在自己的云主机上的,默认提供的是HTTP服务,对比HTTPS,当然是存在很多弊端,刚好现在把网站升级为HTTPS也很方便,就顺手给升级了。
现在用HTTP访问我的博客会被得到一个 301 的HTTPS的跳转。

我是参考耗子叔的博客,现在的部署方式有点变化,我在这里记录下。

配置过程

  1. 首先,打开 https://certbot.eff.org 网页。
  2. 在“My HTTP website is running” 后面分别选择Web接入软件和操作系统,比如我的是NginxUbuntu 20.04
  3. 会自动跳转到一个安装教程网页,找个教程做就可以了。

示例展示

本站为例,介绍下完整的操作过程。

服务器环境: Nginx + Ubuntu 20.04

  1. 通过SSH连接到云主机上;

  2. 安装snapd,snapd 官网说 Ubuntu 20.04 系统自带 snapd 了,但我发现我的主机并没有,所以手动安装了一下,直接使用apt安装即可

    1
    sudo apt install snapd
  3. 确保 snapd 的版本是最新的

    1
    sudo snap install core; sudo snap refresh core
  4. 移除 certbot-auto 和其他使用系统包管理器(apt, yum, dnf)等安装的 Certbot 相关的软件包。我并没有,跳过这步;

  5. 安装 Certbot

    1
    sudo snap install --classic certbot
  6. 准备 Certbot 命令

    1
    sudo ln -s /snap/bin/certbot /usr/bin/certbot
  7. 安装 certificates

    1
    sudo certbot --nginx
  8. 测试自动更新脚本。由于Let’s Encrypt 的证书90天就会过期,所以还需要设置自动更新脚本,先测试下自动更新脚本命令是否能正常运行

    1
    sudo certbot renew --dry-run
  9. 通过HTTPS的方式访问网站,确认是否成功

配置字典更新证书

Let’s Encrypt 的证书90天就会过期,上述配置完成后,还有最重要的一步需要操作,设置定时任务自动更新证书,最简单的办法就是使用crontab

使用 crontab -e 打开crontab的配置文件,写入

1
8 8 1 * * /usr/bin/certbot renew --dry-run

上述配置表示每月1号的8点8分,自动更新证书。