网站HTTPS改用Let's Encrypt 免费 SSL 证书

前言

个人站点一直使用阿里云的免费SSL证书,但有效期只有3个月,一旦忘记更新访问就会有警告,不仅麻烦体验非常的不好。ChatGPT推荐使用Let's Encrypt 提供的免费 SSL 证书,虽然Let's Encrypt 的免费证书同样有效期是3个月,可以通过 certbot 自动安装和续期,非常的方便。

安装步骤(基于Ubuntu 22.04.4)

1. 安装 Certbot

sudo apt update
sudo apt install certbot python3-certbot-nginx

2. 为域名获取 SSL 证书:

使用以下命令生成证书(确保域名已指向服务器 IP):

sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com

替换 yourdomain.comwww.yourdomain.com 为您的实际域名。Certbot 会自动配置 Nginx 以使用 SSL 证书。
Tips:

  1. 安装过程中会要求输入一个邮箱,并询问邮箱是否可以被公开或发送一些最新资讯。
  2. 如果安装失败则需要从命令行的输出中找出证书存储的位置手动安装即可(如下图)


    证书存储的位置

    配置完成后的配置文件如下:

server {
        .......

        listen 443 ssl;
        listen [::]:443 ssl;
        ssl_certificate /etc/letsencrypt/live/jygf.site/fullchain.pem; # managed by Certbot
        ssl_certificate_key /etc/letsencrypt/live/jygf.site/privkey.pem; # managed by Certbot

        server_name yourdomain.com *.yourdomain.com;

        ......
        
}

Tips: 手动安装完成后,执行以下命令完成部署:

sudo  certbot install --cert-name yourdomain.com

3. 自动续期:

默认情况下 certbot已经设置了后台自动续期证书的任务。可以使用以下命令查询:

systemctl list-timers

正常情况下是可以看到`certbot 的定时任务(如下图):


certbot定时任务

如果没有查询到定时需求任务,执行以下命令手动添加:

sudo certbot renew --dry-run
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容