![使用 certbot 快速获取 Let’s Encrypt 证书,提升网站安全性插图 使用 certbot 快速获取 Let’s Encrypt 证书,提升网站安全性插图](https://blog.eswlnk.com/wp-content/uploads/wpcy/45e7ad492f1a1cb44e473793b505e788.jpg)
在提高网站安全性方面,申请可信的 HTTPS 证书是必不可少的。以前一直认为只有静态内容的网站才需要使用 HTTPS,而且觉得申请证书很麻烦。最近我尝试了一下发现,使用命令行工具 certbot 可以非常方便地获取免费的 Let’s Encrypt 证书。
![使用 certbot 快速获取 Let’s Encrypt 证书,提升网站安全性插图1 使用 certbot 快速获取 Let’s Encrypt 证书,提升网站安全性插图1](https://static.esw.eswlnk.com/2023/07/20230726135810926.png-esw)
Certbot 简介
Certbot 是一个 ACME 客户端,其本质上是 Let’s Encrypt 官方推荐的证书签发方式之一。它适用于拥有 shell 访问权限的域名,并使用 ACME 协议来自动化证书签发过程,大大简化了证书签发的步骤。
准备工作
申请 HTTPS 证书的前提是需要先申请一个域名,比如 example.me。同时还需要一台公网可访问的 VPS,并将 example.me 解析到该 VPS 的 IP 地址。
一键运行
可以从 GitHub 上安装 certbot,但文档中也给出了使用 Docker 直接启动的方法,这种方法非常方便。
sudo docker run -it --rm --name certbot -v "/etc/letsencrypt:/etc/letsencrypt" -v "/var/lib/letsencrypt:/var/lib/letsencrypt" -p 80:80 certbot/certbot certonly
其中,certonly
是获取证书的命令,映射 80 端口是为了让 ACME 服务器能够访问我们的 VPS,以验证对域名的所有权。
填写信息
如果在运行 certonly
命令时不加任何参数,将会进入交互式界面。接下来我们需要做以下几步:
选择认证方式
根据提示选择适合自己的认证方式:
- 选项 1:Certbot 自身运行一个 HTTP 服务器,并在 /.well-known/acme-challenge/ 路径下提供必要的验证文件。适用于没有运行 HTTP 服务器的情况。
- 选项 2:将必要的验证文件保存到指定的 webroot 路径下的 .well-known/acme-challenge/ 目录中。此时必须有一个独立的 HTTP 服务器从该 webroot 路径提供文件。适用于已经有运行的 HTTP 服务器的情况。
填写邮件信息和同意服务协议
接下来需要填写邮箱地址和同意服务协议。
输入域名
然后需要输入需要签发证书的域名,可以使用逗号或空格分隔多个域名,但不能使用通配符 *。Certbot 会在本地启动一个 HTTP 服务器,并通知 ACME 服务器访问我们的域名网站,以验证域名所有权。
完成签发
签发证书的过程结束后,会在主机的 /etc/letsencrypt/live/example.me/
目录下生成 fullchain.pem
和 privkey.pem
两个文件。我们可以将这些文件配置到自己的 web 服务器中,实现 SSL 证书配置。
更新证书
使用上述方式生成的证书有效期为 90 天。在证书过期之前,我们需要定期更新。只需将上述命令中的 certonly
改为 renew
即可。该命令会自动更新位于 /etc/letsencrypt/live/
目录下有效期少于 30 天的证书。
📮评论