acme.sh使用教程
参考:https://iclart.com/archives/391
安装
Pre-1.前言
ACME.sh是一个基于ACME协议的证书小工具,可以很方便的获取、续费基于ACME协议CA的证书
Part-1. ACME.sh的安装
ACME.sh的安装非常简单,仅需一个命令就可以搞定,该命令可以更新acme.sh
curl https://get.acme.sh | sh
由于部分过于纯净的系统没有cron,在安装ACME之前应该先运行此命令
sudo yum install cron* -y
会安装在 ~/.acme.sh/ 目录下,以后生成的证书也会在这里面,按照域名为文件夹安置。
理论上会自动添加一个 acme.sh 别名,但有时候并不会生成,需要手动执行以下命令:
source ~/.bashrc
使用dns api的模式进行证书申请
在阿里云获取AccessKey ID和AccessKey Secret
https://usercenter.console.aliyun.com/#/manage/ak
查看一下
export Ali_Key="key值"
export Ali_Secret="key Secret"
首次签发证书,下次就不用再次执行这个命令了
acme.sh --issue --dns dns_ali -d dgq.msdgq.com --force
安装证书:
运行如下命令即可自动安装(此命令会被ACME记录下来,当证书续期/更新时会自动执行)
acme.sh --install-cert -d dgq.msdgq.com \
--cert-file /etc/pki/tls/certs/dgq.msdgq.com.key \
--key-file /etc/pki/tls/private/dgq.msdgq.com.pem \
--fullchain-file /etc/pki/tls/certs/dgq.msdgq.com.cer \
--reloadcmd "systemctl reload httpd"
自动更新证书
Let's 的证书有效期为90天
acme升级
目前由于 acme 协议和 Let`s CA 都在频繁的更新, 因此 acme.sh 也经常更新以保持同步.
升级 acme.sh 到最新版 :
acme.sh --upgrade
如果你不想手动升级, 可以开启自动升级:
acme.sh --upgrade --auto-upgrade
之后, acme.sh 就会自动保持更新了.
你也可以随时关闭自动更新:
acme.sh --upgrade --auto-upgrade 0
Part-9. ACME.sh支持的其他命令/参数
ACME.sh命令构成
acme.sh [命令] [参数]
ACME.sh命令(只说常用的)
--uninstall
卸载ACME.sh
--upgrade
升级ACME.sh
--issue
签发新的证书
--install-cert
讲过了,参照上文
--renew, -r -d 域名
讲过了,参照上文
--renew-all
续期全部证书
--revoke
吊销证书
--remove
从ACME.sh中删除一张证书(记得先吊销)
--list
列出ACME.sh中的所有证书
--toPkcs
转换到pckcs12格式(pfx/p12),可以用于IIS
ACME.sh参数
--keylength, -k
指定密钥的长度,例如-k 2048,如需签发ECC算法密钥的证书,使用-k ec-256或-k ec-384即可
--ocsp-must-staple, --ocsp
签发带有OCSP Must Staple拓展的证书,先挖坑,过后再填
--server
指定ACME服务器,默认为Let's Encrypt,如果需要签发其他CA的证书(比如Buypass),可使用此参数指定,for example
acme.sh --issue -d example.com -d www.example.com --webroot /path/to/your/webroot --server https://api.buypass.com/acme/directory
每月自动更新证书
vi /etc/crontab
00 7 1 "/root/.acme.sh"/acme.sh --cron --home "/root/.acme.sh" > /dev/null