ssl证书自动续期工具——acme
前言
新申请的网站想找一个https的免费证书,现在的免费证书有效期只有90天,于是想找到一个自动更新证书的工具acme.sh。由于我的域名解析在腾讯云上,我这里结合了腾讯云相关操作,来进行acme.sh服务部署。
下载acme.sh
将acme.sh下载到你的 home 目录下
1 | git clone https://github.com/acmesh-official/acme.sh.git |
安装acme.sh
创建一个shell的alias方便使用
1
2
3
4
5
6
7
8
9
10cd ~
vim .bashrc
alias acme.sh=~/.acme.sh/acme.sh
保存退出后 重新加载环境变量
source ~/.bashrc
安装完成后会自动创建crontab任务检测证书有效期
crontab -e 可看到定时任务
13 5 * * * "/home/ops/.acme.sh"/acme.sh --cron --home "/home/ops/.acme.sh" > /dev/null注意换成自己的邮箱号
1 | acme.sh --install -m xxx@qq.com |
- 设置自动升级
1 | acme.sh --upgrade --auto-upgrade |
- 选择服务商
因为ZeroSSL支持泛域名并且兼容性更好,所以选择了ZeroSSL。
1 | acme.sh --set-default-ca --server zerossl |
如果需要Let’s Encrypt服务商也可改为Let’s Encrypt
1 | acme.sh --set-default-ca --server letsencrypt |
腾讯云创建api秘钥账户
- 创建API秘钥
会得到SecretId和SecretKey
1 | SecretId |
- 将秘钥格式化导入环境变量
1 | export Tencent_SecretId="xxxxx" |
Tencent_SecretId
和Tencent_SecretKey
保存至~/.acme.sh/account.conf
中,并在需要时自动获取,无需手动再设置。
申请证书
其中*.aaa.com
是泛域名,aaa.com
是根域名
1 | acme.sh --dns dns_tencent --issue -d *.aaa.com -d aaa.com |
命令执行完毕后,证书颁发成功
使用证书
Nginx示例
Nginx 的配置项 ssl_certificate
需要使用 /etc/nginx/ssl/fullchain.cer
将证书文件复制到nginx配置的ssl证书目录
1 | sudo cp ~/.acme.sh/\*.aaa.com_ecc/\*.aaa.com.cer /etc/nginx/cert/aaa.com.crt |
1 | server { |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 丘比特的小屋!
评论