借助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 API 密鑰官方申請文檔
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