使用 let s encrypt 證書

2022-08-31 09:06:06 字數 2082 閱讀 3128

let's encrypt 是個開放的 ca,提供免費的 tls 證書,旨在提高整個網際網路的安全性。

let's encrypt 的自身的根證書已得到一些常見的根證書的簽名,通過它頒發的 tls 證書可在大部分的系統、瀏覽器上使用,相容性見

。let's encrypt 通過 acme (automatic certificate management environment)協議進行申請和更新,每次申請得到的證書有效期會很短(3個月左右),

到期需要進行更新(商業 tls 證書一般有效期為

一、兩年左右)。雖然有效期短,但它可以自動更新,在 linux 上使用 acme.sh 時,自動註冊了乙個

crontab 任務,每天晚上會自動進行檢查,可用crontab -e檢視。

簡單介紹下申請步驟

向任意的網域名稱註冊商申請乙個網域名稱,freenom.com 還可以免費註冊網域名稱(.tk/.ml/.ga/...)。

網域名稱註冊後,一般會被網域名稱註冊商的 dns 進行解析和管理,像 freedns / cloudflare,

可遷移到其它的 dns 解析方案,不過要注意遷移到國內進行解析時,是需要備案的。

在選擇 dns 解析時,留意下 acme.sh 是否支援對應的 dnsapi ,有相應的 dnsapi 時

才能自動更新。acme.sh 已支援很多的 dns 解析提供商,像 cloudflare、freedns、godaddy、dnspod、萬網(aliyun)等。

看看對應的 dnsapi 的文件,在 dns 解析提供商上建立 api 所需要的 id / token / secret 等資訊,有些 dnsapi 支援不止一種方式,選擇乙個合適

的方案即可,如 cloudflare 上使用account+token方式。

acme.sh 是 shell 指令碼寫的,安裝時無須 root 賬戶,直接在需要使用 let's encrypt 的賬戶中,執行:

curl  | sh
source ~/.bashrc
現在進行申請,以 cloudflare 的account+token(注意看 dnsapi 文件,這個 token 需要讀取所有的 zone ,並寫對應的 zone.dns )為例:

export cf_account_id=export cf_token=acme.sh --force --issue -d example.com -d www.example.com --dns dns_cf
acme.sh 會把環境變數記錄下來,在下次進行重新整理使用。對應的證書在~/.acme.sh目錄下的網域名稱目錄裡,.key是私鑰,fullchain.cer

是帶中間證書的完整證書。

不同的 web 伺服器掛證書的方式有點不一樣,需要參考對應的說明文件。

在 nginx 中,配置如下:

ssl_certificate "更新一下

nginx -s reload可以把 reload 放到 crontab,或通過acme.sh 本身支援與 nginx 整合配置。在 acme.sh 頒發證書時自動進行 nginx reload,加上

acme.sh --reloadcmd "nginx -s reload"
以集群方式部署時,如果不是多節點共享儲存,需要把證書同步到其它節點,可直接在acme.sh加的 crontab 規則後面加乙個 rsync (這裡已把公鑰新增到了其它機器)

20 0 * * * rsync -e "ssh -o stricthostkeychecking=no -o userknownhostsfile=/dev/null" -a /root/.acme.sh [email protected]:/root
同時其它節點要定時做下 reload

免費證書Let s Encrypt

我們自己也可以簽發 ssl 安全證書,但是我們自己簽發的安全證書不會被主流的瀏覽器信任,所以我們需要被信任的證書授權中心 ca 簽發的安全證書。而一般的 ssl 安全證書簽發服務都比較貴,比如 godaddy globalsign 等機構簽發的證書一般都需要20美金一年甚至更貴,不過為了加快推廣 h...

let s encrypt免費證書申請及使用

let s encrypt是國外一家提供免費ssl網域名稱證書的機構,申請過程非常簡單,但是免費期只有90天,不過到期可以免費續簽。git clone 註冊 cd letsencrypt letsencrypt auto certonly standalone email 554599744 qq....

使用lets encrypt 生成免費的證書

說明 mr.l edited this page on 23 oct 2018 21 revisions acme.sh 實現了 acme 協議,可以從 letsencrypt 生成免費的證書.主要步驟 安裝 acme.sh 生成證書 copy 證書到 nginx apache 或者其他服務 更新證...