文章

acme.sh 使用泛域名|阿里云DNS |免费申请证书

如果你的安装服务器位于中国大陆境内, 访问 github 可能会不成功. 所以安装可能会失败.

所以推荐安装方式如下:

  1. 推荐从这里下载安装:

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

https://f-e-d.club/topic/use-acme-sh-deployment-let-s-encrypt-by-ali-cloud-dns-generic-domain-https-authentication.article

官网配置说明:

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

License: