使用acme.sh申請&自動續期LetsEncrypt免費SSL證書


一、簡介

LetsEncrypt是一個免費、自動、開放的證書頒發機構。
acme.sh 實現了 acme 協議, 可以從 LetsEncrypt 生成免費的證書。

本文介紹如何使用acme.sh來簽發並自動續期LetsEncrypt免費SSL證書。

二、安裝

安裝acme.sh,只需要一條命令 

curl https://get.acme.sh | sh
alias acme.sh=~/.acme.sh/acme.sh

使用DNS方式驗證 ,本文以CloudXNS(此服務商已經停止為免費用戶提供dns服務,建議使用阿里雲的雲解析dns,方法同理)為例,其他DNS服務商見文章結尾

事實上,acme.sh支持http方式和DNS方式驗證域名所有權,但考慮到有時會失效和部分用戶服務器無web服務,此處使用DNS驗證方式。

1.驗證域名

登錄DNS控制台,進入API管理頁面(不同DNS服務商的頁面不同,見文章結尾),記錄下API信息

導入API信息到acme.sh,運行命令

export CX_Key="1234"
export CX_Secret="sADDsdasdgdsf"

2.簽發證書

[1]簽發指定域名,如example.com,運行命令

acme.sh --issue --dns dns_cx -d example.com -d www.example.com --reloadcmd "/nginx/nginx/sbin/nginx -s reload"
#簽發ECC證書請使用以下命令
acme.sh --issue --dns dns_cx -d example.com -d www.example.com --keylength ec-256 --reloadcmd "/nginx/nginx/sbin/nginx -s reload"

[2]簽發泛域名,運行命令

acme.sh --issue --dns dns_cx -d example.com -d *.example.com --reloadcmd "/nginx/nginx/sbin/nginx -s reload"
#簽發ECC證書請使用以下命令
acme.sh --issue --dns dns_cx -d example.com -d *. example.com --keylength ec-256 --reloadcmd "/nginx/nginx/sbin/nginx -s reload"

請注意:reloadcmd非常重要,--reloadcmd "" 中為重啟對應服務命令,如上為博主自己服務器上重啟nginx服務命令。如果沒有正確的“reloadcmd”,證書可以自動續訂,但是證書可能無法刷新到您的服務器(如nginx或apache),那么您的網站將無法在60天內顯示續訂證書。

保持最新的acme

acme.sh --upgrade --auto-upgrade

請注意,命令中export CX_Key、export CX_Secret、–dns dns_cx為CloudXNS的參數,請根據你的服務商修改

各大DNS商API獲取方法請參考官方文檔(本教程在第三點,阿里雲在第11),如下:

https://github.com/Neilpang/acme.sh/blob/master/dnsapi/README.md

https://github.com/Neilpang/acme.sh/wiki/dnsapi

簽發成功!

 

 

默認新簽發的證書路徑為: /root/.acme.sh/簽發的域名/ 目錄下。

 

另外有standalone生成ssl證書的方式,請參考 https://www.cnblogs.com/007sx/p/11370713.html

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM