acme.sh 搭配 nginx 实现自动更新证书

10/8/2020 SSL证书

使用acme.sh (opens new window)申请 Let's Encrypt 网站证书

# 克隆安装

curl  https://get.acme.sh | sh
1

普通用户或 ROOT 账户皆可运行,这步操作将 acme.sh 安装至 ~/.acme.sh并为你创建了一个 alias 方便使用 别名为:acme.sh,可以在source ~/.bashrc或其他在使用的 shellrc 后使用

# 证书申请

申请有次数限制,确保网址可以正确访问到服务器,具体见:速率限制 (opens new window)

下面将使用 HTTP 方式来申请证书文件,也是官方推荐的一种,可以自动检测过期并自动更新。

acme.sh  --issue  -d mydomain.com -d www.mydomain.com  --webroot  /home/wwwroot/mydomain.com/
1

将 mydomain.com 替换为你的域名,将/home/wwwroot/mydomain.com/替换为你网站静态文件所在位置

申请完成后将输出证书 cer 与 key 到~/.acme/mydomain

# 安装证书

  1. 输出可用的 key 与 pem
acme.sh --install-cert -d example.com \
--key-file       /home/wwwroot/ssl/cert.key  \
--fullchain-file /home/wwwroot/ssl/cert.key.pem \
--reloadcmd     "systemctl restart nginx"
1
2
3
4

具体输出位置据个人网站位置而定

  1. 修改 nginx 配置文件,引入证书







 
 












server {

	listen  443 ssl;
	server_name www.xx.com;

	...

	ssl_certificate     /home/wwwroot/ssl/cert.key.pem;
	ssl_certificate_key /home/wwwroot/ssl/cert.key;

	ssl_ciphers	HIGH:!aNULL:!MD5;
	ssl_protocols	TLSv1 TLSv1.1 TLSv1.2;

	ssl_session_timeout	5m;

	ssl_prefer_server_ciphers on;

	...

}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
  1. 重启 nginx 服务使配置生效
nginx -t
# 检测nginx配置是否正确

systemctl restart nginx
# 重启nginx
1
2
3
4
5

打开网站检查是否已配置成功

到此结束,祝你好运。

最后更新于: 2/26/2021, 8:27:47 PM