在 OpenResty Edge 中透過 Let's Encrypt 簽發免費 SSL 證書
今天我想展示如何在 OpenResty Edge 中透過 Let’s Encrypt 自動簽發免費 SSL 證書。
為應用新增萬用字元域名
像往常一樣,讓我們進入 OpenResty Edge 的 Admin Web 控制檯。這是我們的控制檯的樣本部署。每個使用者都有自己的本地部署。
這一次我們繼續使用 test-edge.com 域名的樣本應用。
我們可以看到,它已經在 443 埠為 SSL 進行監聽。
進入這個應用。
這裡我們想要用子域名來做演示,所以需要先調整應用的設定。
讓我們為這個應用新增一個新的萬用字元域名。
儲存。
然後推送給我們的閘道器伺服器。因為 Let’s Encrypt 伺服器將會需要驗證我們的域名所有權。
釋出更改。
釋出!
新增 SSL 證書
轉到 SSL 頁面。
我們可以看到,目前還沒有定義 SSL 證書。
讓我們新增一個新的證書。
我們支援各種不同的方式來頒發新的 SSL 證書。
這裡就只演示 Let’s Encrypt 的方式。
將頂級域名 test-edge.com 新增到該證書中。
新增更多的子域名稱。
輸入我們的 api
子域。它可以是任何東西。
也可以新增更多子域名。
如果有很多域名,還可以使用批次輸入模式。
可以在這裡逐行輸入所需要的域名。
先退出批次輸入模式。
這裡的所有域名必須被解析到這個 OpenResty Edge 部署的閘道器伺服器上。
這個要求也在這裡提到了。
在終端上,我們可以使用 dig
命令來測試域名是否已經解析到我們的閘道器伺服器。
dig test-edge.com
可以看到有效的 DNS 答案。
也可以測試一下 api
子域。
dig api.test-edge.com
同樣也得到了有效的 DNS 答案。
Let’s Encrypt 伺服器需要透過這些域名訪問我們的閘道器伺服器。這是因為他們必須確保我們確實擁有這些域名。
對於萬用字元域名,你還必須使用 OpenResty Edge 作為域名的權威性 DNS 名稱伺服器。
同意 Lets' Encrypt 訂閱者協議。
儲存。
就可以看到新的 Let’s Encrypt 證書了。
證書來源是 Let’s Encrypt。
它有兩個域名,正如預期的那樣。
我們可以在這裡檢視實時狀態。
透過點選這個狀態圖示來檢視詳細的進度。
還可以在這裡觀察有關 Let’s Encrypt 證書籤發過程的詳細日誌。
現在可以看到證書已經被簽發。
讓我們先退出這個狀態頁面。
可以在這一欄中檢視新證書的到期時間。
該證書將在 3 個月後過期。
而 OpenResty Edge 會在將來證書即將過期時自動更新。
我們可以看到預定的下次更新時間將在 2 個月後。也就是說,在過期前一個月。
現有的 Let’s Encrypt 證書也是可以編輯的。
我們在這裡不做任何改動。
或者也可以刪除這個證書。
我們現在不想刪除它。
但可以在不刪除的情況下禁用它。
然後,它也可以被重新啟用。
我們需要釋出一個新版本來推送我們的新證書,就像往常一樣。
點選這個按鈕。
釋出!
現在已經完成了!
現在,新的證書已經被推送到所有的閘道器叢集和伺服器上。
我們的配置更改不需要重新載入伺服器、重啟或二進位制升級伺服器程序。所以它是非常有效和可擴充套件的。
然後,OpenResty Edge 將在這些證書過期前再次自動更新來自 Let’s Encrypt 的證書。
如果由於某些原因,一些證書未能更新,使用者會收到類似這樣的全域性通知。
測試
讓我們開啟一個新的瀏覽器標籤,透過 https
訪問 test-edge.com 網站。
它成功了!
同時測試 api
子域。
它也能工作!
我們也可以用一個閘道器叢集伺服器,在終端上測試我們的新證書。
在舊金山附近選擇一個閘道器伺服器。
複製它的公共 IP 地址,以 133 結尾。
在終端上,我們可以向這個閘道器伺服器傳送一個 HTTPS 請求。
curl -I --resolve 'test-edge.com:443:138.68.231.133' https://test-edge.com/
成功了!
我們也可以使用 -v
選項獲取更多細節資訊。
curl -I --resolve 'test-edge.com:443:138.68.231.133' https://test-edge.com/ -v
執行這個命令。
我們確實可以在這裡看到我們的伺服器證書。還可以看到該證書確實是由 Let’s Encrypt 頒發的。
關於 OpenResty Edge
OpenResty Edge 是一款專為微服務和分散式流量架構設計的全能型閘道器軟體,由我們自主研發。它集流量管理、私有 CDN 構建、API 閘道器、安全防護等功能於一體,幫助您輕鬆構建、管理和保護現代應用程式。OpenResty Edge 擁有業界領先的效能和可擴充套件性,能夠滿足高併發、高負載場景下的苛刻需求。它支援排程 K8s 等容器應用流量,並可管理海量域名,輕鬆滿足大型網站和複雜應用的需求。
如果你喜歡這個教程,請訂閱這個部落格網站和我們的 YouTube 頻道 或 B 站頻道。謝謝!
關於作者
章亦春是開源 OpenResty® 專案創始人兼 OpenResty Inc. 公司 CEO 和創始人。
章亦春(Github ID: agentzh),生於中國江蘇,現定居美國灣區。他是中國早期開源技術和文化的倡導者和領軍人物,曾供職於多家國際知名的高科技企業,如 Cloudflare、雅虎、阿里巴巴, 是 “邊緣計算“、”動態追蹤 “和 “機器程式設計 “的先驅,擁有超過 22 年的程式設計及 16 年的開源經驗。作為擁有超過 4000 萬全球域名使用者的開源專案的領導者。他基於其 OpenResty® 開源專案打造的高科技企業 OpenResty Inc. 位於美國矽谷中心。其主打的兩個產品 OpenResty XRay(利用動態追蹤技術的非侵入式的故障剖析和排除工具)和 OpenResty Edge(最適合微服務和分散式流量的全能型閘道器軟體),廣受全球眾多上市及大型企業青睞。在 OpenResty 以外,章亦春為多個開源專案貢獻了累計超過百萬行程式碼,其中包括,Linux 核心、Nginx、LuaJIT、GDB、SystemTap、LLVM、Perl 等,並編寫過 60 多個開源軟體庫。
關注我們
如果您喜歡本文,歡迎關注我們 OpenResty Inc. 公司的部落格網站 。也歡迎掃碼關注我們的微信公眾號:
翻譯
我們提供了英文版原文和中譯版(本文) 。我們也歡迎讀者提供其他語言的翻譯版本,只要是全文翻譯不帶省略,我們都將會考慮採用,非常感謝!