申请SSL证书并自动更新

2022-01-01
2 min read

申请SSL证书并自动更新

Let’s Encrypt 是一个免费的SSL证书申请项目,这里衔接之前的hugo博客部署教程,介绍如何申请SSL证书。

1. certbot

根据网页指示,如果我们有shell access,即SSH access,则可以直接使用cerbot进行SSL证书的自动申请。进入网站后,根据实际情况选择自己的server和系统环境,本案例中分别为NginxUbuntu 20.04.3 LTS,选择好后会有详细的指示出现:

接下来根据指示可以进行,这里以我的情况为例介绍,其中包含一些可能出现的问题和解决情况。

2. 安装snapd

直接从命令行中通过以下命令下载:

sudo apt update
sudo apt install snapd

执行以下命令,确认使用最新版本的snapd:

sudo snap install core; sudo snap refresh core

3. 环境检查

如果之前曾经安装过certbot相关的包,需要进行移除,执行命令为:

sudo apt-get remove certbot

4. 安装certbot

确认无误后,安装certbot:

sudo snap install --classic certbot

安装后激活certbot命令:

sudo ln -s /snap/bin/certbot /usr/bin/certbot

5. 运行certbot

与官方指引不同,这里建议先申请证书:

sudo certbot certonly --nginx

之后可以再让Certbot自动编辑nginx配置以提供服务:

sudo certbot --nginx

5.1 hint

如果这一步出错,可以尝试先关闭port 80

netstat -apn|grep 80

找到占用80端口的pid:

关闭:

sudo kill -9 82941

之后再运行上述命令。

6. 更新证书

cerbot会在证书到期之前自动更新证书,无需手动操作。可以通过以下命令测试:

sudo certbot renew --dry-run

7. 访问网站

之后输入https:\\yourwebsite.com,可以在网址状态栏看到锁的图标: