acme生成萬用字元ssl證書
阿新 • • 發佈:2020-12-16
acme生成萬用字元ssl證書
1.安裝acme
wget https://get.acme.sh | sh
安裝完成後的目錄在/root/.acme.sh/下面.
直接使用 cd /root/.acme.sh 命令 進入.acme.sh目錄.
2.生成SSL證書
這裡我們是用 DNS 驗證方式。DNS 方式,需要手動在域名上新增一條 txt 解析記錄,驗證域名所有權。為了避免每次都需要手動解析驗證域名所有權,我們使用域名解析商提供的 api 自動新增 txt 記錄完成驗證,acme.sh 目前支援數十種解析商的自動整合,其中包含阿里雲。以阿里云為例,你需要先登入到阿里雲賬號,生成你自己的 api id
export Ali_Key="xxx" && export Ali_Secret="xxx"
# 因為生成的萬用字元域名證書中並不包含根域名證書,所以我們要指定根域名。
acme.sh --issue --dns dns_ali -d example.com -d *.example.com
注意:請將 example.com 改為你自己的域名。
3.安裝到nginx
./acme.sh --installcert -d example.com \
--keypath /etc/nginx/ssl/example.com.key \
--fullchainpath /etc/nginx/ssl/example.com.cer
4.nginx配置
server { listen 443 ssl; server_name example.com; ssl on; ssl_certificate ssl/abc.domain.com.cer; ssl_certificate_key ssl/abc.domain.com.key; location / { proxy_pass http://127.0.0.1:8001; } } # 80埠直接轉到443 server { listen 80; server_name example.com; return 301 https://$server_name$request_uri; }
5.更新證書
生成的證書只有30天有效期,所以需要自行更新
5.1手動更新
acme.sh --renew -d example.com --force
5.2自動更新
安裝 acme.sh 時會自動建立一個 cronjob,每天定期檢查所有證書,如果證書需要更新會自動更新證書。
通過 crontab -l
檢視 crontab 任務:
25 0 * * * "/root/.acme.sh"/acme.sh --cron --home "/root/.acme.sh" > /dev/null
如果有該定時任務,則不需要額外配置。