一、Let's Encrypt、Certbot和Snap的关系
Let's Encrypt是一个免费、自动化和开放的证书颁发机构,由非营利的互联网安全研究小组(ISRG)为您提供。
Certbot使用EFF的Certbot在您的网站上自动启用HTTPS,部署Let's Encrypt证书。
Snap则是用于下载安装Certbot的包管理器。
所以,核心是Let's Encrypt证书,Snap和Certbot则是用于生成管理证书的工具。
二、官方Certbot安装(与nginx进行证书绑定)
1、安装snapd
1.1、增加EPEL仓库
sudo yum -y install epel-release
1.2、安装snapd
sudo yum -y install snapd
1.3、启用snapd socket
systemctl enable --now snapd.socket
1.4、创建一个软连接 /snap 到 /var/lib/snapd/snap,安装软件需要在 /snap中。
sudo ln -s /var/lib/snapd/snap /snap
2、安装certbot
2.1、 确保snapd是最新版本
sudo snap install core;sudo snap refresh core
2.2、移除certbot-auto和任何Certbot OS包
sudo yum remove certbot
2.3、安装certbot
sudo snap install --classic certbot
2.4、准备Certbot命令
sudo ln -s /snap/bin/certbot /usr/bin/certbot
2.5、选择nginx运行方式
自动配置nginx
sudo certbot --nginx
手动配置nginx
sudo certbot certonly --nginx
2.6、自动续期
sudo certbot renew
2.7、签发证书
2.7.1使用dns方式(需在域名管理中配置_acme-challenge.<YOUR_DOMAIN>
的TXT记录)
certbot certonly --email xxx@126.com --manual --preferred-challenges dns -d a.xxx.com
2.8、修改nginx配置文件
server {
listen 443 ssl;
listen [::]:443 ssl ipv6only=on;
ssl_certificate /etc/letsencrypt/live/your.domain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/your.domain.com/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/your.domain.com/chain.pem;
// ... other settings ...
}
2.9、配置