腾讯云DNS和Lego工具结合使用,可以方便地为你的域名自动申请和续期SSL证书。以下是具体步骤:
Lego是一个用Go语言编写的工具,用于自动申请和续期Let’s Encrypt的SSL证书。
在服务器上安装Lego:
# 下载Lego
wget https://github.com/go-acme/lego/releases/download/v4.5.3/lego_v4.5.3_linux_amd64.tar.gz
# 解压
tar -xzf lego_v4.5.3_linux_amd64.tar.gz
# 将Lego移动到可执行路径
sudo mv lego /usr/local/bin/
Lego需要通过腾讯云的API来管理DNS记录,因此你需要获取腾讯云的API密钥。
SecretId
和SecretKey
。使用Lego申请SSL证书时,需要指定腾讯云DNS作为DNS提供商。
# 设置环境变量
export TENCENT_CLOUD_SECRET_ID="your-secret-id"
export TENCENT_CLOUD_SECRET_KEY="your-secret-key"
# 申请证书
lego --dns tencentcloud --domains yourdomain.com --email [email protected] run
yourdomain.com
:你要申请证书的域名。[email protected]
:你的邮箱地址,用于接收证书相关的通知。Lego会将生成的证书文件保存在当前目录下的.lego
文件夹中。你可以找到以下文件:
certificates/yourdomain.com.crt
:证书文件。certificates/yourdomain.com.key
:私钥文件。将生成的证书和私钥文件配置到你的Web服务器中。以Nginx为例:
server {
listen 443 ssl;
server_name yourdomain.com;
ssl_certificate /path/to/yourdomain.com.crt;
ssl_certificate_key /path/to/yourdomain.com.key;
# 其他配置...
}
Let’s Encrypt的证书有效期为90天,因此需要定期续期。你可以设置一个cron任务来自动续期证书。
# 编辑cron任务
crontab -e
# 添加以下内容,每天凌晨2点检查并续期证书
0 2 * * * /usr/local/bin/lego --dns tencentcloud --domains yourdomain.com --email [email protected] renew --days 30
访问https://yourdomain.com
,确保SSL证书已正确配置并且网站可以正常访问。
要将通过 Lego 申请的 SSL 证书颁发到 Nginx 的指定位置(如 /etc/nginx/cert/dongqianshan.com
),可以按照以下步骤操作:
在申请证书时,使用 --path
参数指定证书的保存路径。例如,将证书保存到 /etc/nginx/cert/dongqianshan.com
:
lego --email="[email protected]" --domains="dongqianshan.com" --domains="*.dongqianshan.com" --dns tencentcloud --path /etc/nginx/cert/dongqianshan.com run
执行后,证书文件会生成在 /etc/nginx/cert/dongqianshan.com/certificates/
目录下。
将生成的证书文件移动到 Nginx 的配置位置 /etc/nginx/cert/dongqianshan.com
:
mv /etc/nginx/cert/dongqianshan.com/certificates/dongqianshan.com.crt /etc/nginx/cert/dongqianshan.com/dongqianshan.com_bundle.crt
mv /etc/nginx/cert/dongqianshan.com/certificates/dongqianshan.com.key /etc/nginx/cert/dongqianshan.com/dongqianshan.com.key
编辑 Nginx 配置文件(如 /etc/nginx/nginx.conf
或 /etc/nginx/sites-available/default
),添加 SSL 配置:
server {
listen 443 ssl;
server_name dongqianshan.com www.dongqianshan.com;
ssl_certificate /etc/nginx/cert/dongqianshan.com/dongqianshan.com_bundle.crt;
ssl_certificate_key /etc/nginx/cert/dongqianshan.com/dongqianshan.com.key;
# 其他配置...
}
保存配置文件后,重启 Nginx 使配置生效:
sudo systemctl restart nginx
访问 https://dongqianshan.com
,确保 SSL 证书已正确配置并且网站可以正常访问。
Lego 支持自动续期证书。你可以设置一个脚本,在续期后自动更新 Nginx 配置并重启 Nginx。
创建脚本 /etc/nginx/cert/renew.sh
:
#!/bin/bash
# 续期证书
lego --email="[email protected]" --domains="dongqianshan.com" --domains="*.dongqianshan.com" --dns tencentcloud --path /etc/nginx/cert/dongqianshan.com renew --days 30
# 移动证书文件
mv /etc/nginx/cert/dongqianshan.com/certificates/dongqianshan.com.crt /etc/nginx/cert/dongqianshan.com/dongqianshan.com_bundle.crt
mv /etc/nginx/cert/dongqianshan.com/certificates/dongqianshan.com.key /etc/nginx/cert/dongqianshan.com/dongqianshan.com.key
# 重启 Nginx
systemctl restart nginx
赋予脚本执行权限:
chmod +x /etc/nginx/cert/renew.sh
设置定时任务(例如每天凌晨 2 点执行):
0 2 * * * /etc/nginx/cert/renew.sh
通过以上步骤,你可以将 Lego 申请的 SSL 证书颁发到 Nginx 的指定位置,并配置 Nginx 使用该证书。同时,通过自动续期脚本,确保证书始终保持有效。
通过腾讯云DNS和Lego工具,你可以轻松地为你的域名申请和续期SSL证书,确保网站的安全性。