使用 acme.sh 及 腾讯云DNSPod申请Let's Encrypt 的ssl 证书,并自动续签
AI-摘要
Tianli GPT
AI初始化中...
介绍自己 🙈
生成本文简介 👋
推荐相关文章 📖
前往主页 🏠
前往爱发电购买
使用 acme.sh 及 腾讯云DNSPod申请Let's Encrypt 的ssl 证书,并自动续签
Alon腾讯云、阿里云陆续都把免费的 ssl 证书有效期换成几个月了,之前一年有效期每次手动操作下还行。现在几个月就要一次太烦了。so,来把证书换成 Let’s Encrypt,并用 acme.sh实现自动续签
安装 acme
使用
curl https://get.acme.sh | sh -s email=my@example.com
因为网络问题总是超时,所以改用gitee
方式安装 acme
git clone https://gitee.com/neilpang/acme.sh.git |
安装完之后,应该会生成一个 cronjob,没有的话可以自己新增一个,该 job 可以每天检测所有证书并更新快过期的证书
生成证书(dns 验证方式)
生成证书acme 提供了两种方式,一种是 http 方式,需要在网站根目录下放置一个验证文件。另一种是 dns 验证,给域名添加一条 txt 解析记录就可以了。
我选择使用 dns 验证的方式,可以通过域名解析伤提供的 api 来自动验证,就不需要手动验证了
配置腾讯云的 api
- 进入 腾讯云 DNSPOD 控制台的 API密钥管理
- 进入 DNSPod Token选项卡,创建密钥
- 保存好 ID及 Token
配置环境变量并生成密钥
回到服务器中,将上面的 api 密钥配置为环境变量,供后面 acme 脚本生成 ssl 证书时使用
# 配置环境变量 |
这里是
DP_Id
,DP_Key
,dns_dp
都是腾讯云方式的,如果是其他服务商,请参考 文档
acme.sh参数说明:
参数名 | 含义 | 说明 |
---|---|---|
–server | 指定证书签发方 | zerossl(默认值,但是会因为网络问题经常出错), letsencrypt |
–dns | 指定 dns的 api验证方 | 具体参考 文档 |
-d | 要生成证书的域名 | 可生成*的泛域名证书 |
–key-file | 生成的.key证书的存放目录 | |
–fullchain-file | 生成的crt证书的存放目录 | |
–reloadcmd | 重新加载证书 | 使用service nginx force-reload ,不要使用service nginx reload ,但我更愿意手动操作证书 |
修改 nginx 配置
在 nginx 配置中添加ssl_certificate
和ssl_certificate_key
,并重新加载 nginx 配置文件nginx -s reload
,使证书生效
评论
匿名评论隐私政策
✅ 你无需删除空行,直接评论以获取最佳展示效果