Let's Encrypt签发通配SSL证书

文中命令在ubuntu 18.04中完成验证,使用root用户

安装基础环境

1
2
apt update
curl https://get.acme.sh | sh

签发证书

此处域名解析使用DNSPod,故从DNSPod获得ApiToken进行操作,其它DNS解析服务商按照对应要求执行命令

DNSPod ApiToken获取:
https://www.dnspod.cn(用户中心 > 安全设置 > API Token)

设置环境变量:

1
2
3
export DP_Id="11****"
export DP_Key="c9a9********e46eb"
source ~/.bashrc

执行签发命令:

1
acme.sh --issue --dns dns_dp -d wg.xiidev.com -d *.wg.xiidev.com --reloadcmd "systemctl force-reload nginx" # -d 后面表示对应域名(可以指定多个域名及通配域名)

Nginx配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
server {
listen 80;
server_name agent.wg.xiidev.com;
return 301 https://$host$request_uri;
}

server {
listen 443 ssl;
listen [::]:443 ssl;
ssl_certificate /root/.acme.sh/wg.xiidev.com/fullchain.cer;
ssl_certificate_key /root/.acme.sh/wg.xiidev.com/wg.xiidev.com.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers "ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-RSA-AES256-SHA:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!aNULL";
ssl_prefer_server_ciphers on;
server_name agent.wg.xiidev.com;

location / {
proxy_set_header Host $http_host;
proxy_read_timeout 10;
proxy_pass http://agent.wg:8000/;
}
}