Let’s Encrypt:使用 Certbot 获取免费 SSL 证书
本文教大家如何使用 Let’s Encrypt certbot 来获取免费的 SSL 证书以及如何自动更新它。
最重要的是,Let’s Encrypt 是一个开源软件,并且完全免费。它允许任何人在其网站上安装受信任的 SSL 证书,并从加密连接提供的增强安全性中受益。与自签名 SSL 证书不同,Let’s Encrypt 证书被认为是经过完全验证的,并在现代 Web 浏览器的地址栏中显示挂锁图标。
目录
- 让我们加密的工作原理
- 1.安装certbot
- 2. 获取 Let’s Encrypt 证书
- 3. 验证证书
- 4.修改Web服务器配置
- 5. 自动更新 Let’s Encrypt 证书
- 结论
让我们加密的工作原理
在颁发证书之前,Let’s Encrypt 会验证您的域的所有权。在您的主机上运行的 Let’s Encrypt 客户端会创建一个包含所需信息的临时文件(令牌)。然后验证服务器发出 HTTP 请求来检索文件并验证令牌,这将验证您的域的 DNS 记录是否解析为运行 Let’s Encrypt 客户端的服务器。因此,下面显示的命令必须在将为您颁发证书的域提供服务的服务器上执行。
1.安装certbot
Let’s Encrypt 有一个名为certbot
. 使用 Let’s Encrypt 获取 SSL 证书的第一步是将其安装在您的服务器上。
Ubuntu:
sudo apt install certbot python3-certbot-nginx
Debian:
sudo apt install certbot
CentOS:
sudo yum install epel-release
sudo yum install certbot-nginx
2. 获取 Let’s Encrypt 证书
重要的!在颁发 Let’s Encrypt 免费 SSL 证书之前,您必须停止您的 Web 服务器服务。否则你会得到以下错误:
Problem binding to port 80: Could not bind to IPv4 or IPv6
如果您使用Nginx,请执行:
sudo systemctl stop nginx
现在我们可以继续生成 Let’s Encrypt 免费 SSL 证书:
sudo certbot certonly --standalone --preferred-challenges http -d my-domain.com
-d 选项采用域名。您可以-d
在单个命令中使用多个选项。例如:
sudo certbot certonly --standalone --preferred-challenges http -d my-domain.com -d www.my-domain.com
如果这是您第一次运行 certbot
,系统会提示您输入电子邮件地址并同意服务条款。执行此操作后, certbot
将与 Let’s Encrypt 服务器通信,然后运行质询以验证您是否控制要为其申请证书的域。
如果成功,certbot
将显示一条消息,告诉您该过程已成功以及您的证书存储在何处。
IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at
/etc/letsencrypt/live/my-domain.com/fullchain.pem. Your cert will
expire on 2022-08-08. To obtain a new or tweaked version of this
certificate in the future, simply run certbot again with the
"certonly" option. To non-interactively renew all of your
certificates, run "certbot renew"
- Your account credentials have been saved in your Certbot
configuration directory at /etc/letsencrypt. You should make a
secure backup of this folder now. This configuration directory will
also contain certificates and private keys obtained by Certbot so
making regular backups of this folder is ideal.
- If you like Certbot, please consider supporting our work by:
Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate
Donating to EFF: https://eff.org/donate-le
3. 验证证书
列出您保存在/etc/letsencrypt/live/my-domain.com
目录中的证书 。
ls -l /etc/letsencrypt/live/my-domain.com/
total 4
-rw-r--r-- 1 root root 692 Mar 10 08:24 README
lrwxrwxrwx 1 root root 37 Mar 10 08:24 cert.pem -> ../../archive/my-domain.com/cert1.pem
lrwxrwxrwx 1 root root 38 Mar 10 08:24 chain.pem -> ../../archive/my-domain.com/chain1.pem
lrwxrwxrwx 1 root root 42 Mar 10 08:24 fullchain.pem -> ../../archive/my-domain.com/fullchain1.pem
lrwxrwxrwx 1 root root 40 Mar 10 08:24 privkey.pem -> ../../archive/my-domain.com/privkey1.pem
4.修改Web服务器配置
为了让您的Web 服务器使用 Let’s Encrypt 免费 SSL 证书,您需要在其配置中指定它们。例如,如果您使用 Nginx,则需要将以下块添加到您的域配置文件中/etc/nginx/sites-enabled/my-domain.conf
server {
listen 443;
server_name my-domain.com;
ssl on;
ssl_certificate /etc/letsencrypt/live/my-domain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/my-domain.com/privkey.pem;
}
而已。万事俱备。现在你只需要启动你的网络服务器:
sudo systemctl start nginx
最后,您可以检查您的网站现在是否受 SSL 保护。只需在浏览器中打开网站并检查挂锁图标是否可用。
5. 自动更新 Let’s Encrypt 证书
证书的有效期为 90 天。它们可以在到期前 30 天续订。在这里,我们添加了一个 cron 作业,它将自动更新它们。
所以首先打开crontab文件:
sudo crontab -e
之后添加certbot
每周运行的 命令:
@weekly certbot renew --pre-hook "systemctl stop nginx" --post-hook "systemctl start nginx" --renew-hook "systemctl reload nginx" --quiet
结论
在本教程中,我们看到了如何从 Let’s Encrypt 安装免费的 SSL 证书以保护网站。此外,您还可以查看 Let’s Encrypt 官方网站 以获取更多信息和详细信息。
The post Let’s Encrypt:使用 Certbot 获取免费 SSL 证书 first appeared on Linux迷.
共有 0 条评论