acme.sh 快速實現 https 證書頒發與自動續期
阿新 • • 發佈:2020-08-10
藉助acem.sh
來迅速實現 let's encrypt 的泛域名 ssl 證書頒發與續期,基本上五分鐘就可以解決戰鬥
本文主要內容來自 acme.sh 的官方 wiki,一切以官方說明為準: acme wiki
I. 安裝步驟
1. 登入伺服器
登入到某臺 linux 伺服器,我這裡以 Centos 舉例說明
ssh xxx@xxx
# 切換root賬號
su
2. 安裝acme.sh
yum install socat -y
curl https://get.acme.sh | sh
cd ~/.acme.sh/
3. 申請金鑰
到域名購買服務商,申請 api key,用於後期的 txt 記錄驗證
DNSPod
金鑰申請完畢之後,如下操作匯入命令
# DNSPod
export DP_Id="id"
export DP_Key="key"
阿里雲
ALY_KEY 和 ALY_TOKEN:阿里雲 API key 和 Secrec 官方申請文件。
申請完畢之後,如下操作
export Ali_Key="key"
export Ali_Secret="secret"
godaddy
- GODADDY_KEY 和 GODADDY_TOKEN:GoDaddy
export GD_Key="key"
export GD_Secret="secret"
其他
至於其他平臺,應該如何匯入 API key,可以參考下面的文件,這裡不一一說明了
4. 證書生成
# 請注意,--dns後面的引數,一般來講字尾就是上面的匯入key的字首 # 如果不確定,到上面的github連線中去找 # 針對 hhui.top 域名生成通配的證書 ./acme.sh --issue --dns dns_ali - d *.hhui.top
證書生成之後,會在.acme.sh
目錄下,新生成一個 *.hhui.top
(就是我們上面指定的通配域名) 資料夾,證書在裡面
5. 安裝證書
接下來將我們的證書安裝到 nginx(當然也可以是 tomcat),下面的指令碼除了安裝之外,也添加了一個自動更新的任務(一般來說,60 天以後會自動更新,並會強制重啟 nginx 使新的證書生效,可以通過 crontab -e
看到對應的定時任務)
./acme.sh --installcert -d *.hhui.top --key-file /etc/nginx/ssl/key.pem --fullchain-file /etc/nginx/ssl/cert.pem --reloadcmd "service nginx force-reload"
6. nginx 配置
然後就是配置 nginx,支援 https
下面是一個基礎的 nginx 配置例項
server {
server_name blog.hhui.top;
root /home/yihui/xxx;
index index.html;
gzip on;
gzip_buffers 32 4K;
gzip_comp_level 6;
gzip_min_length 100;
gzip_types application/javascript text/css text/xml;
gzip_disable "MSIE [1-6]\."; #配置禁用gzip條件,支援正則。此處表示ie6及以下不啟用gzip(因為ie低版本不支援)
gzip_vary on;
location ~* ^.+\.(ico|gif|jpg|jpeg|png)$ {
access_log off;
expires 1d;
}
location ~* ^.+\.(css|js|txt|xml|swf|wav|pptx)$ {
access_log off;
expires 10m;
}
location / {
try_files $uri $uri/ @router;
}
location @router {
rewrite ^.*$ /index.html last;
}
listen 443 ssl;
ssl_certificate /etc/nginx/ssl/cert.pem;
ssl_certificate_key /etc/nginx/ssl/key.pem;
ssl_stapling on;
ssl_stapling_verify on;
resolver 8.8.8.8 8.8.4.4 1.1.1.1 valid=60s;
resolver_timeout 2s;
}
server {
if ($host = blog.hhui.top) {
return 301 https://$host$request_uri;
}
listen 80;
server_name blog.hhui.top;
return 404;
}
II. 其他
1. 一灰灰 Blog: https://liuyueyi.github.io/hexblog
一灰灰的個人部落格,記錄所有學習和工作中的博文,歡迎大家前去逛逛
2. 宣告
盡信書則不如,以上內容,純屬一家之言,因個人能力有限,難免有疏漏和錯誤之處,如發現 bug 或者有更好的建議,歡迎批評指正,不吝感激
- 微博地址: 小灰灰 Blog
- QQ: 一灰灰/3302797840
3. 掃描關注
一灰灰 blog