本文以demo.example.com為例,詳細(xì)介紹了使用acme.sh進(jìn)行ssl申請(qǐng)和自動(dòng)續(xù)約的方法
讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來自于我們對(duì)這個(gè)行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡(jiǎn)單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長(zhǎng)期合作伙伴,公司提供的服務(wù)項(xiàng)目有:域名與空間、網(wǎng)絡(luò)空間、營(yíng)銷軟件、網(wǎng)站建設(shè)、石樓網(wǎng)站維護(hù)、網(wǎng)站推廣。
只需要用任意用戶執(zhí)行
curl https://get.acme.sh | sh
acme.sh 會(huì)安裝到 ~/.acme.sh/
目錄下,并創(chuàng)建新的自動(dòng)計(jì)劃(cronjob)在凌晨0點(diǎn)檢查所有證書
apache
或是nginx
服務(wù)器的情況acme.sh --issue -d <域名> --webroot <網(wǎng)站根目錄>
acme.sh --issue -d demo.example.com --webroot /home/wwwroot/demo.example.com/
yum install socat
acme.sh --issue -d demo.example.com --standalone
首先獲得認(rèn)證需要的解析記錄
acme.sh --issue --dns -d demo.example.com
然后在DNS服務(wù)商中添加記錄
最后重新生成證書
acme.sh --renew -d demo.example.com
使用這種方式 acme.sh 將無法自動(dòng)更新證書,每次都需要手動(dòng)再次重新解析驗(yàn)證域名所有權(quán)。
dns 方式的真正強(qiáng)大之處在于可以使用域名解析商提供的 api 自動(dòng)添加 txt 記錄完成驗(yàn)證
首先需要在云上申請(qǐng)有DNS配置權(quán)限的賬號(hào)密碼
參考:
操作方法
在dnspod官網(wǎng)上申請(qǐng)
https://www.dnspod.cn/Login?r=/console
然后登錄遠(yuǎn)程服務(wù)器
export DP_Id="1234"
export DP_Key="sADDsdasdgdsf"
acme.sh --issue --dns dns_dp -d demo.example.com
參考:
操作方法
在阿里云官網(wǎng)登錄添加擁有DNS配置權(quán)限的子賬戶 https://ram.console.aliyun.com/overview
然后登錄遠(yuǎn)程服務(wù)器
export Ali_Key="AccessKeyId"
export Ali_Secret="AccessKeySecret"
acme.sh --issue --dns dns_ali -d demo.example.com
默認(rèn)生成的證書都放在安裝目錄下: ~/.acme.sh/
需要將證書“拷貝”到自定義位置,方便配置,這里的復(fù)制需要用acme.sh的自帶工具用于日后自動(dòng)更新
acme.sh --installcert -d demo.example.com \
--key-file /usr/local/nginx/ssl/demo_example_com.key \
--fullchain-file /usr/local/nginx/ssl/demo_example_com.cer \
--reloadcmd "/usr/local/nginx/sbin/nginx -s reload"
暫無
nginx 設(shè)置類似如下
server {
listen 443 ssl;
ssl on;
ssl_certificate /usr/local/nginx/ssl/demo_example_com.cer; # 這里指向證書安裝的位置
ssl_certificate_key /usr/local/nginx/ssl/demo_example_com.key;
}
參考:https://mikemiao111.com/nginx%E5%A2%9E%E5%BC%BAhttps%E5%AE%89%E5%85%A8%E9%85%8D%E7%BD%AE/
nginx默認(rèn)采用1024位的加密算法,如果需要的話可以使用2048位的代替,這樣可以讓加密更安全
首先生成 zjk_zoollcar_top.pem 文件到指定目錄
openssl dhparam -out /usr/local/nginx/ssl/demo_example_com.pem 2048
然后在nginx配置文件中設(shè)置
server {
listen 443 ssl;
ssl on;
ssl_certificate /usr/local/nginx/ssl/demo_example_com.cer;
ssl_certificate_key /usr/local/nginx/ssl/demo_example_com.key;
ssl_dhparam /usr/local/nginx/ssl/demo_example_com.pem; #新增
}
可以用下面的網(wǎng)站測(cè)試SSL安全性
https://www.ssllabs.com/ssltest/
目前由于 acme 協(xié)議和 letsencrypt CA 都在頻繁的更新, 因此 acme.sh 也經(jīng)常更新以保持同步.
升級(jí) acme.sh 到最新版 :
acme.sh --upgrade
如果不想手動(dòng)升級(jí), 可以開啟自動(dòng)升級(jí):
acme.sh --upgrade --auto-upgrade
之后, acme.sh 就會(huì)自動(dòng)保持更新了.
你也可以隨時(shí)關(guān)閉自動(dòng)更新:
acme.sh --upgrade --auto-upgrade 0