首先贴上原文地址↗。
在开始之前,强烈建议切换到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