使用acme.sh和cloudflare托管的域名生成网站的ssl通配符证书
1.安装acme.sh
在root目录
curl https://get.acme.sh | sh -s [email protected]
2.使用cloudflare
的api
密钥在服务器上生成环境变量CF_Key
和CF_Email
①先去cloudflare(点击这里)官网获取api
密钥
获取后在服务器执行,请把CF_Key
和CF_Email
换成自己的
export CF_Key="763eac4f1bcebd8b5c95e9fc50d010b4"
export CF_Email="[email protected]"
3.生成网站的通配符证书
./.acme.sh/acme.sh --issue --dns dns_cf -d example.com -d '*.example.com'
如果遇到下图这种情况,说明ZeroSSL服务商
抽风了,可在命令后面加--server letsencrypt
,没遇到的话可跳到第4点
./.acme.sh/acme.sh --issue --dns dns_cf -d example.com -d '*.example.com' --server letsencrypt
或者设置默认的ca
证书服务商为letsencrypt
./.acme.sh/acme.sh --set-default-ca --server letsencrypt
4.配置证书
生成的证书地址在/root/.acme.sh/<你的域名名称>/
,如图
在nginx
里配置证书
server {
# 如果有资源,建议使用 https + http2,配合按需加载可以获得更好的体验
listen 443 ssl http2;
server_name <你的域名名称>;
# 证书的公私钥
ssl_certificate /root/.acme.sh/<你的域名名称_ecc>/fullchain.cer;
ssl_certificate_key /root/.acme.sh/<你的域名名称_ecc>/<你的域名名称>.key;
# gzip config
gzip on;
gzip_min_length 1k;
gzip_comp_level 9;
gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;
gzip_vary on;
gzip_disable "MSIE [1-6]\.";
location / {
# 用于配合 browserHistory使用
try_files $uri $uri/index.html /index.html;
}
location /api {
proxy_pass <你的域名名称,如: https://example.com>;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
}
}
配置好之后,不要忘记执行nginx -s reload
重新读取nginx
配置
License:
CC BY 4.0