ACME使用

首先贴上原文地址↗

在开始之前,强烈建议切换到root用户。

Apache2和SSL储存大多需要根用户权限,在脚本中配置sudo相对麻烦,建议从root用户开始。

1、下载安装

wget -O -  https://get.acme.sh | sh -s email=my@example.com

安装会自动进行,创建一个cronjob任务并创建alias,但疑似脚本有问题,异名未创建成功,可能需要手动运行。

alias acme.sh=root/.acme.sh/acme.sh

如果网络安装失败可以手动安装,自行下载acme.sh文件,使用以下参数用脚本安装,注意,此种方式缺少dnsapi文件夹,会导致自动dnsapi验证不可用。

./acme.sh --install -m my@example.com

2、生成证书

使用dns验证生成通配符证书,本网站解析在DNSpod,于是有下列:

export DP_Id="1234"
export DP_Key="sADDsdasdgdsf"
acme.sh --issue --dns dns_dp -d example.com -d *.example.com

会生成一套证书而不是两套,token会被记录在.acme.sh/account.conf内。

3、安装证书

手动安装或者手动对齐目录会可能导致引用不正常,推荐脚本自带命令安装。

对于Apache2使用下列命令

acme.sh --install-cert -d example.com \
--cert-file      /path/to/certfile/in/apache/cert.pem  \
--key-file       /path/to/keyfile/in/apache/key.pem  \
--fullchain-file /path/to/fullchain/certfile/apache/fullchain.pem \
--reloadcmd     "service apache2 force-reload"

对于NGINX使用下列命令

acme.sh --install-cert -d example.com \
--key-file       /path/to/keyfile/in/nginx/key.pem  \
--fullchain-file /path/to/fullchain/nginx/cert.pem \
--reloadcmd     "service nginx reload"

Nginx 的配置项 ssl_certificate 需要使用 /etc/nginx/ssl/fullchain.cer ,而非 /etc/nginx/ssl/.cer ,否则 SSL Labs 的测试会报证书链问题(Chain issues Incomplete)。

4、检查及更新

#检查域名证书信息
acme.sh --info -d example.com
#更新证书,开启后会自动更新。
acme.sh --renew -d example.com

5、软件更新

#手动更新
acme.sh --upgrade
#自动更新
acme.sh --upgrade --auto-upgrade
#关闭自动更新
acme.sh --upgrade --auto-upgrade  0