由于之前的SSL证书自动更新已经过期,重新了解了ACME的使用,因此记录如下。
ACME安装步骤
卸载
如果已经安装,最好先卸载干净
1 2
| acme.sh --uninstall rm -rf ~/.acme.sh
|
安装
1 2 3 4 5 6 7 8 9 10
| # 国内网络无法直连 wget https://gitee.com/neilpang/acme.sh/repository/archive/master.zip unzip master.zip cd acme.sh-master # 安装,邮箱可接受相关邮件 ./acme.sh --install -m x7430657@163.com # 刷新 source ~/.bashrc # 检查安装是否成功 acme.sh --version
|
使用
添加域名所有者账号/子账号信息
阿里云
1 2 3
| # 该账号需有DNS的管理权限 export Ali_Key="demo" export Ali_Secret="demo"
|
注册和申请证书
可以申请不同服务商的证书,推荐letsencrypt
letsencrypt证书
1 2 3 4 5 6 7 8
| # 注册 acme.sh --register-account -m x7430657@163.com --server letsencrypt # 申请 acme.sh --issue --server letsencrypt \ --dns dns_ali \ -d "*.seanblog.cn" \ -d "seanblog.cn" \ --keylength ec-256
|
litessl证书
1 2 3 4 5 6 7 8 9 10 11 12
| # 注册,eab相关信息,可在FreeSSL(截止2026年1月26日可获取)或其他相关网站中获取 acme.sh --register-account --server https://acme.litessl.com/acme/v2/directory \ --eab-kid test \ --eab-hmac-key test \ --insecure # 申请 acme.sh --issue --server https://acme.litessl.com/acme/v2/directory \ --dns dns_ali \ -d "*.seanblog.cn" \ -d "seanblog.cn" \ --keylength ec-256 \ --insecure
|
安装证书
1 2 3 4 5 6 7
| # 创建文件夹 mkdir -p /usr/local/nginx/cert # 安装执行后,后续ACME自动续签会同步执行安装 acme.sh --install-cert -d "*.seanblog.cn" \ --key-file /usr/local/nginx/cert/jseanblog.cn.key \ --fullchain-file /usr/local/nginx/cert/seanblog.cn.cer \ --reloadcmd "/usr/local/nginx/sbin/nginx -s reload"
|
关于ACME的目录
目录:/root/.acme.sh/,申请的证书也在该目录下(不建议从该目录中直接提取,请使用安装命令进行安装,这样未来快过期申请时,acme.sh会自动安装且重启相关服务)
定时刷新:见crontab -e
日志
ACME日志需要修改文件/root/.acme.sh/account.conf:
1 2
| # 去掉对应注释,或更改日志所在位置 LOG_FILE="/root/.acme.sh/acme.sh.log"
|
Cron执行日志,需修改ACME定时执行命令:
1 2 3 4
| # 修改定制执行任务 crontab -e # 修改ACME执行命令中的/dev/null,指定日志文件 29 2 * * * "/root/.acme.sh"/acme.sh --cron --home "/root/.acme.sh" > /root/.acme.sh/acme_cron.log 2>&1
|