acme.sh 使用泛域名|阿里云DNS |免费申请证书
如果你的安装服务器位于中国大陆境内, 访问 github 可能会不成功. 所以安装可能会失败.
所以推荐安装方式如下:
推荐从这里下载安装:
https://gitee.com/neilpang/acme.sh
安装步骤:
根据 How-to-install#3-or-git-clone-and-install
git clone https://gitee.com/neilpang/acme.sh.git
cd acme.sh
./acme.sh --install -m my@example.com
配置 阿里云key
官网配置说明:
dnsapi · acmesh-official/acme.sh Wiki (github.com)
1、配置阿里的秘钥
export Ali_Key="sdfsdfsdfljlbjkljlkjsdfoiwje"
export Ali_Secret="jlsdflanljkljlfdsaklkjflsa"
2、执行:
source ~/.bashrc
3、生成证书
acme.sh --issue --dns dns_ali -d *.dingdong.site
4、安装
acme.sh --install-cert -d *.dingdong.site --key-file 你的路径/dingdong.site.key --fullchain-file 你的路径/fullchain.cer --reloadcmd "/app/nginx/sbin/nginx -s reload"
配置ngix
这边要注意的,上面我申请 *.dingdong.site
所以只能是两级的域名,不能给 api.api.dingdong.site
使用证书。不然会报服务不安全。
server
{
# 你的其他配置...
listen 443 ssl;
#强制https
ssl on;
ssl_certificate /xxx/ssl/fullchain.cer;
ssl_certificate_key /xxx/dingdong.site.key;
}
acme.sh 管理
查看 添加网站的 列表
acme.sh --list
如果误操作,或想删除之前添加的域名
acme.sh --remove -d 你的网站
查看更多
acme.sh --help
更新证书
目前证书在 60 天以后会自动更新, 你无需任何操作. 今后有可能会缩短这个时间, 不过都是自动的, 你不用关心.
请确保 cronjob 正确安装, 看起来是类似这样的:
crontab -l
56 * * * * "/root/.acme.sh"/acme.sh --cron --home "/root/.acme.sh" > /dev/null
关于修改ReloadCmd
目前修改ReloadCmd
没有专门的命令,可以通过重新安装证书来实现修改reloadCmd
的目的。 此外,安装证书后,相关信息是保存在~/.acme.sh/example.com/example.conf
文件下的,内容就是acme.sh --info -d example.com
输出的信息,不过ReloadCmd
在文件中使用了Base64编码。理论上可以通过直接修改该文件来修改ReloadCmd
,且修改时,无需Base64编码,直接写命令原文acme.sh
也可以识别。 不过,example.conf
文件的位置和内容格式以后可能会改变!example.conf
一直都是内部使用, 后面有可能会改为用 sqlite 或者mysql 格式存储. 所以一般不建议自己修改。
更新 acme.sh
目前由于 acme 协议和 letsencrypt CA 都在频繁的更新, 因此 acme.sh 也经常更新以保持同步.
升级 acme.sh 到最新版 :
acme.sh --upgrade
如果你不想手动升级, 可以开启自动升级:
acme.sh --upgrade --auto-upgrade
之后, acme.sh 就会自动保持更新了.
你也可以随时关闭自动更新:
acme.sh --upgrade --auto-upgrade 0
出错怎么办:
如果出错, 请添加 debug log:
acme.sh --issue ..... --debug
或者:
acme.sh --issue ..... --debug 2