Let’s Encrypt 證書是免費憑證服務,也受到所有主要根程式的信賴,似乎相當受歡迎。
從 cPanel 內建產生 Let’s Encrypt 憑證,到網通設備內建簡單地產生 Let’s Encrypt 憑證,除了 SSL For Free 線上工具之外,日本有提供 Let’s Encrypt 線上申請工具,也支援了 DNS-01、ECDSA 對應。
什麼是「SSLなう!」?
「SSLなう!」(https://sslnow.ml/) 是一家日本上發行憑證的 Let’s Encrypt 客戶端,功能如下 …
- 支援 OS 跨平台作業系統線上申請
- 支援 SAN 多域名發行憑證
- 支援 Web 瀏覽器產生伺服器密鑰、攜伴現有密鑰
- 支援 Server 對應於 RSA、ECDSA
- 支援 HTTP-01、DNS-01 作為網域名稱的所有權進行認證
網域名稱的所有權進行認證方法
要使用 Let’s Encrypt 發行憑證,必須網域名稱的所有權進行認證才能使用。
HTTP-01 認證
是一種透過目標域名的 Web 主機特定目錄裡上傳認證文件檔案,此網域名稱的所有權進行認證。
例如說,如果您域名是 “example.com” 發行憑證, example.com/.well-known/acme-challenge/(取得認證文件檔案) 特定目錄裡,上傳認證文件檔案。
DNS-01 認證
與 HTTP-01 認證相反,DNS-01 透過在目標域名的 DNS 對應 Let’s Encrypt 取得的匹配 TXT 文字資料來認證。
例如,在 “example.com” 發行憑證時,請 _acme-challenge.example.com. IN TXT “(取得的匹配 TXT 文字資料)” 設置 TXT 記錄。
DNS-01 比 HTTP-01 差別是?
DNS-01 優點是不需在 Web 主機上傳認證文件檔案,直接在 DNS 管理解析進行認證。
而 HTTP-01 缺點原因如下:
- Web 主機的外部連線限制
- 負載平衡器裡,分佈目標的 Web 主機數量多
- 憑證檔案安裝目錄位於不同
- 除了 Web 主機之外的伺服器上使用憑證檔案,例如電子郵件伺服器
申請憑證流程
本此教學作為一個例子,我將 “cdn.sakamoto.blog” 來申請憑證流程
註冊帳戶綁加密 (僅限於初次申請)
首先,在「SSLなう!」(https://sslnow.ml/) 中註冊 証明書発行用の署名鍵を登録 。
在 Let’s Encrypt へ登録 頁面中,輸入您的電子郵件地址,請勾選框同意 Let’s Encrypt 服務條款,按 登録 按鈕。
它就會自動產生 RSA 2048 bit 的署名鍵,註冊成功後將其署名鍵保存在瀏覽器的 localStorage 裡中。 署名鍵將在下次從瀏覽器自動加入,所以無需註冊步驟。
管理權 token 認證
チャレンジトークンの取得 頁面中,請輸入要加入憑證的網域名稱,如果要為多域名發行憑證,請使用 +追加 按鈕來輸入多個域名填上去後,按下 トークンを取得 按鈕取得認證。
確認網域名稱的所有權
取得管理權認證後,我們可以透過 HTTP-01 或 DNS-01 方法來驗證網域名稱的所有權。
ドメイン名の所有確認 在右側的內容為左側 FQDN 對應 TXT 記錄。如有多個域名,請為每個域名設置一條記錄上。所有設置完成後,請按 確認 按鈕並從 Let’s Encrypt 的加密端請求確認。
請等待確認 3~5 分鐘後,再按 確認 按鈕。
申請發行憑證
一旦成功驗證域名的所有權之後,就可以申請發行憑證。 証明書発行申請 頁面中,可以選擇 RSA 或 ECDSA 密鑰。
按此處的 生成 (2048 bits) 按鈕產生成密鑰,再按 証明書発行申請 按鈕,申請下來發行憑證。
上傳登錄憑證
因 Web 控制介面的畫面而異,把 Certificate body、Private Key、Certificate Chain 三項登錄上去,即可完成登錄憑證。