github地址:https://github.com/acmesh-official/acme.sh

参考文档:https://cloud.tencent.com/document/product/302/105900

安装

国内服务器建议:其中 my@example.com 可以替换为自己邮箱地址,以便管理证书和收到重要的系统通知

1
2
3
git clone https://gitee.com/neilpang/acme.sh.git
cd acme.sh
./acme.sh --install -m my@example.com

获取腾讯云AK和SK

我这里是直接获取的主账号的ak、sk。

腾讯云控制台==》 访问管理==》 访问秘钥 ==》API秘钥管理 ==》 新增秘钥,记录好生成的SecretId和SecretKey

img

生成证书( DNS 验证)

  1. 将记录好的的SecretId和SecretKey导入到环境变量中(只针对当前会话有效)
1
2
export Tencent_SecretId="<Your SecretId>"
export Tencent_SecretKey="<Your SecretKey>"
  1. 长期有效建议直接添加至环境变量文件
1
2
3
4
5
6
nano ~/.bashrc
# 在文件末尾加入
export Tencent_SecretId="<Your SecretId>"
export Tencent_SecretKey="<Your SecretKey>"
# 重新加载
source ~/.bashrc
  1. 可使用以下命令验证是否导入成功
1
2
echo $ Tencent_SecretId
echo $ Tencent_SecretKey
  1. 证书申请,*.example.com替换为自己的域名。
1
acme.sh --issue --dns dns_tencent -d example.com -d *.example.com
  1. 证书复制,example.com替换为自己的域名,/path/to/keyfile/in/nginx/key.pem和/path/to/fullchain/nginx/cert.pem替换为证书放置的实际路径,systemctl reload nginx替换为需要执行的 web 服务重载命令(我此处是使用的重启ng)。
1
2
3
4
acme.sh --install-cert -d example.com \
--key-file /path/to/keyfile/in/nginx/key.pem \
--fullchain-file /path/to/fullchain/nginx/cert.pem \
--reloadcmd "systemctl reload nginx"

最后

  1. 列出已经颁发的证书,acme.sh –list

  2. 查看证书的有效期,acme.sh –renew -d yourdomain.com –force

  3. 自动续期(定时任务),acme.sh –cron

  4. 强制更新证书,acme.sh –renew -d yourdomain.com –force

  5. 删除指定证书,acme.sh –remove -d yourdomain.com

  6. 备份证书默认目录(~/.acme.sh/backup/),acme.sh –backup

  7. 备份证书到指定目录,acme.sh –backup –backup-dir /path/to/backup/

  8. 恢复证书,acme.sh –restore,acme.sh –restore –backup-dir /path/to/backup/