acme.sh生成通配符SSL證書
1爷耀、下載 acme.sh
curl https://get.acme.sh | sh
2柿冲、配置阿里云域名DNS密鑰
以阿里云為例衡查,你需要先登錄到阿里云賬號用僧,生成你自己的 api id 和 api key,它是免費(fèi)的 (建議開啟阿里云【RAM 訪問控制】辰如,只給AliyunDNSFullAccess權(quán)限策略普监,這樣做更安全)
export Ali_Key="<key>"
export Ali_Secret="<secret>"
3、創(chuàng)建證書存放目錄
mkdir -p /etc/nginx/ssl
chown -R $USER /etc/nginx/ssl
你可以修改默認(rèn)CA服務(wù)商為 letsencrypt琉兜,原默認(rèn)為zerossl
./acme.sh --set-default-ca --server letsencrypt
參考 https://github.com/acmesh-official/acme.sh/wiki/Server
4凯正、安裝到nginx
./acme.sh --issue --dns dns_ali -d example.com -d *.example.com \
--keypath /etc/nginx/ssl/example.com.key \
--fullchainpath /etc/nginx/ssl/example.com.cer \
--reloadcmd "sudo nginx -s reload"
5、nginx使用ssl證書
listen 443 ssl;
ssl_certificate /etc/nginx/ssl/example.com.cer; # 替換證書文件
ssl_certificate_key /etc/nginx/ssl/example.com.key; # 替換證書密鑰文件
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
重啟nginx
sudo nginx -s reload
六豌蟋、更新證書
# 升級 acme.sh 到最新版
./acme.sh --upgrade
# 查看所有證書
./acme.sh --list
# 移除某個證書
./acme.sh --remove -d example.com
# 手動更新
./acme.sh --renew -d example.com
# 自動更新(請確保 cronjob 正確安裝, 看起來是類似這樣的廊散,路徑可能不一樣)
crontab -l
56 * * * * "/root/.acme.sh"/acme.sh --cron --home "/root/.acme.sh" > /dev/null