1 2 3 4 5 6 7
| curl https://get.acme.sh | sh
curl https://gitee.com/neilpang/acme.sh | sh source ~/.bashrc
acme.sh --upgrade --auto-upgrade
|
升级CA
1
| yum update ca-certificates
|
将acme切换到Let’s Encrypt的CA
1
| acme.sh --set-default-ca --server letsencrypt
|
签发证书
因为我的nginx 443反代到一个网站,80端口是空闲的,所以我下面使用的是acme.sh伪装自己为一个webserver的方式,其他方式
防火墙放开80端口
安装socat
签发证书
1
| acme.sh --issue -d 需要签发的域名 --standalone
|
安装证书到指定目录,并执行新域名后需要重启的应用,如xray,nginx。acme.sh将记住操作并
1 2 3 4
| ~/.acme.sh/acme.sh --install-cert -d 需要签发的域名 \ --key-file /usr/local/nginx/ssl/需要签发的域名.key \ --fullchain-file /usr/local/nginx/ssl/需要签发的域名.key.pem \ --reloadcmd "service nginx force-reload"
|
(一个小提醒, 这里用的是 service nginx force-reload
, 不是 service nginx reload
, 据测试, reload
并不会重新加载证书, 所以用的 force-reload
)
Nginx 的配置 ssl_certificate
使用 /etc/nginx/ssl/fullchain.cer
,而非 /etc/nginx/ssl/<domain>.cer
,否则 SSL Labs 的测试会报 Chain issues Incomplete
错误。
--install-cert
命令可以携带很多参数, 来指定目标文件. 并且可以指定 reloadcmd, 当证书更新以后, reloadcmd会被自动调用,让服务器生效。
查看定时任务确保会自动执行
查看已安装的证书信息
1
| acme.sh --info -d 需要签发的域名
|