- Install
1 2 3 |
git clone https://github.com/acmesh-official/acme.sh.git cd ./acme.sh ./acme.sh --install -m my@example.com |
上面命令执行完成后, 可以删除 “acme.sh” 目录
上面的安装命令执行了3个操作
1: 创建一个目录 “~/.acme.sh/”,用来存放所有部署文件
2:创建了一个别名 acme.sh=~/.acme.sh/acme.sh
3:创建了一个定时任务0 0 * * * "/home/user/.acme.sh"/acme.sh --cron --home "/home/user/.acme.sh" > /dev/null
用来自动判断证书是否需要更新
- 域名 DNS 验证
域名 DNS 验证有多种方式, 推荐使用注册上提供的 key、secret 自动化验证
以阿里云注册域名为例,使用以下命令导入 key、secret
1 2 |
export Ali_Key="xxx" export Ali_Secret="xxx" |
- 生成证书
1 2 3 4 |
acme.sh --issue \ -d "domain.com" \ -d "*.domain.com" \ --dns dns_ali |
这里以生成通配符证书为例(因为生成的通配符域名证书中并不包含根域名证书,所以我们要指定根域名),如果为了安全性可以更改域名选项。
- 将生成的证书拷贝到固定的目录
虽然可以直接使用生成路径中的证书文件,但是目录结构可能会变化,强烈不建议这样做,
正确的使用方式是使用--install-cert
命令,使用方式如下
1 2 3 4 5 6 7 8 |
#Apache acme.sh --install-cert \ -d "domian.com" \ -d "*.domain.com" \ --cert-file /www/ssl/domain.com/cert.pem \ --key-file /www/ssl/domain.com/key.pem \ --fullchain-file /www/ssl/domian.com/fullchain.pem \ --reloadcmd "service apache2 force-reload" |
1 2 3 4 5 6 7 |
# Nginx acme.sh --install-cert \ -d "domian.com" \ -d "*.domain.com" \ --key-file /www/ssl/domain.com/key.pem \ --fullchain-file /www/ssl/domian.com/cert.pem \ --reloadcmd "service nginx force-reload" |
提示:
1:使用force-reload
,而不是reload
,据测试, reload 并不会重新加载证书, 所以用的 force-reload。
2:当证书更新以后,reloadcmd会被自动调用,让服务器生效。
- 更新证书
目前证书在 60 天以后会自动更新, 你无需任何操作. 今后有可能会缩短这个时间, 不过都是自动的, 你不用关心。
当然你也可以手动测试更新,使用如下命令:acme.sh --renew -d "domain.com" -d "*.domain.com" --force
查看自动更新域名列表,使用如下命令(下图所示):
acme.sh --list
删除自动更新域名,使用如下命令
acme.sh --remove -d domain.com
- 更新 acme.sh
目前由于 acme 协议和 letsencrypt CA 都在频繁的更新, 因此 acme.sh 也经常更新以保持同步.
1 2 3 4 5 6 7 8 |
# 升级 acme.sh 到最新版 acme.sh --upgrade # 如果你不想手动升级, 可以开启自动升级 acme.sh --upgrade --auto-upgrade # 你也可以随时关闭自动更新 acme.sh --upgrade --auto-upgrade 0 |
- debug
如果出错, 请添加 debug log
acme.sh --issue ..... --debug
或者acme.sh --issue ..... --debug 2
更多关于debug 的细节,参考How to debug acme.sh · acmesh-official/acme.sh Wiki · GitHub
本着互联网开源、开放的精神和宗旨,本站所有内容可以随便传播。如需转载或分享无需说明来源。
有任何疑问或烦恼,欢迎评论区讨论。
暂无回复数据