acme.sh自动生成免费ssl证书(自动续期)
简介
先了解下ACME协议,此协议是由Let’s Encrypt开发,它是一个免费的证书颁发机构。ACME协议有两个关键的部分,一个是ACME服务端,一个是ACME客户端。服务端能够自动颁发证书,客户端可以请求、续签、吊销证书。而acme.sh就是通过此协议帮助我们自动申请证书和续签,此项目完全有shell编写,没有依赖,方便安装,使用简单
我是通过freessl和acme.sh结合实现自动化ssl证书的生成,免费,好用!
acme.sh 安装
一条命令即可安装,普通用户和root都可以1
curl https://get.acme.sh | sh -s email=my@example.com
为了方便使用可以设置一个alias1
2echo 'alias acme.sh=~/.acme.sh/acme.sh' >>~/.bashrc
source ~/.bashrc
freessl 注册
访问https://freessl.cn/ ,注册账号略过,注册后点击ACME自动化->点击添加->按照步骤添加DNS的CNAME解析(我用的阿里云的DNS)检测通过后会有给你一个命令行,在服务器执行即可
执行完以下命令后,会在~/.acme.sh/www.geeklive.cn/ 目录下生成证书(证书有效期为90天),之后在nginx配置好即可1
acme.sh --issue -d www.geeklive.cn --dns dns_dp --server https://acme.freessl.cn/v2/DV90/directory/xxxxxxxx
acme.sh会自动生成计划任务,添加时按照以下命令添加crontab 任务,每天0点自动检查证书是否过期
1 | crontab -e |
acme.sh扩展命令
查看已经安装的证书信息1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 acme.sh --info -d www.geeklive.cn
DOMAIN_CONF=/home/ubuntu/.acme.sh/www.geeklive.cn/www.geeklive.cn.conf
Le_Domain=www.geeklive.cn
Le_Alt=no
Le_Webroot=dns_dp
Le_PreHook=
Le_PostHook=
Le_RenewHook=
Le_API=https://acme.freessl.cn/v2/DV90/directory/xx
Le_Keylength=2048
Le_OrderFinalize=https://acme.freessl.cn/v2/DV90/finalize/xxx/xxx/xxx
Le_LinkOrder=https://acme.freessl.cn/v2/DV90/order/xxxx/xxx/xxx
Le_LinkCert=https://acme.freessl.cn/v2/DV90/cert/xxxxx/xx
Le_CertCreateTime=1676343750
Le_CertCreateTimeStr=2023-02-14T03:02:30Z
Le_NextRenewTimeStr=2023-04-14T03:02:30Z
Le_NextRenewTime=1681441350
更新acme.sh脚本
1 | 升级 acme.sh 到最新版 : |
手动更新证书1
2 强制更新证书:
acme.sh --renew -d www.geeklive.cn --force
停止更新证书,您可以执行以下操作从更新列表中删除证书:1
acme.sh --remove -d www.geeklive.cn
本文作者 : WGY
原文链接 : http://geeklive.cn/2023/02/13/acme.sh/undefined/acme.sh/
版权声明 : 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明出处!