上回抱著嘗試的心態在 SSL For Free 申請 Wildcard 憑證 (*.abc.com),沒想到申請成功了,原本還以為 Let’s Encrypt 只能針對個別網址進行申請。最近由於憑證快滿三個月,便準備再進行申請,卻發現 SSL For Free 被 ZeroSSL 買下來後,針對 Wildcard 憑證的申請,유료로만 구매할 수 있기 때문에,그래서 이 플랫폼의 서비스를 포기할 수밖에 없었다。

인터넷에서 정보를 검색한 후,대부분의 글에서는 Let’s Encrypt에서 추천하는 Certbot 도구를 사용하는 것을 권장했다,인증서를 신청할 수 있을 뿐만 아니라,자동으로 갱신도 가능하다。하지만 실제로 사용해본 결과,URL 인증 부분에서 몇 가지 문제가 발생하여 원활하게 진행할 수 없었다,그래서 포기할 수밖에 없었다。
之後試著搜尋可以像 SSL For Free 那樣線上申請憑證的網站,最後找到 Get HTTPS for free! 이 不太起眼但很棒的網站! Get HTTPS for free! 是个 open source 的網站,web的頁面很簡陋,但是說明很詳細。試著依照上面的步驟進行,可惜在步驟 3. 要透過 openssl 驗證時,網頁說明的指令在 Windows 환경似乎無法運行,因此再度卡關。

好在後來在 Cook Wu’s Murmurs 的文章 得知,有網友針對 Get HTTPS for free! 寫了一個可以在 Windows 運行的超方便協力工具 – GetHttpsForFree-UI,只要把 openssl 的位置在 GetHttpsForFree-UI 設定好,後面搭配網頁的步驟一步一步進行,幾乎都只要複製貼上就好,不需用到指令。
下面為以「Get HTTPS for free!」+「openssl」+「GetHttpsForFree-UI」申請「Let’s Encrypt wildcard 憑證」的說明:
※ 如果是要續簽憑證,把前一次的 account.key、domain.key 及 openssl.cnf 放到指定位置,並設定好 OpenSSL Path 及 Working Path,先做步驟 10.,接著從 12. 依序做下去即可。
1. 다운로드 openssl for windows,並解壓縮。
2. 다운로드 GetHttpsForFree-UI.exe。
3. 執行 GetHttpsForFree-UI.exe,在 OpenSSL Path 設定 openssl.exe 的位置。
4. 在 Working Path 設定一個待會要存放「憑證」及「金鑰」的目錄。
5. Account key 與 Domain key 的檔案名稱可以使用預設值。
6. openssl.cnf 檔可以在 openssl\share 目錄底下找到,也可以點選「Download an OpenSSL.cnf template file」,下載範本檔,我這邊選擇後者。下載範本檔後,存到 Working Path 的目錄。
7. 點選「Copy required entry to clipboard」,此時剪貼簿會含有 openssl.cnf 所需的參數,接者打開剛剛的 openssl.cnf,在最後一行「貼上」。

8. 修改剛剛貼上的 subjectAltName 參數,將後面的網址改成 *.abc.com。

9. 回 GetHttpsForFree-UI.exe 工具,切換到「Step 1 and 2」頁面,按下「Create Account Key」,此時會產生 Let’s Encrypt 所需的郵件帳號的 Public key 內容,並自動複製到剪貼簿。另外 Working Path 資料夾會產生一個 account.key 的私鑰檔。

10. 到「Get HTTPS for free!」網站,於 Step 1 輸入 Email 及貼上剛剛的 Public key,並按下「Validate Account Info」。

11. 回 GetHttpsForFree-UI.exe 工具,按下「Create Domain Key and Request」,此時會產生 CSR 內容並自動複製到剪貼簿。另外 Working Path 資料夾會產生一個 domain.key 的私鑰檔。

12. 到「Get HTTPS for free!」網站,於 Step 2 貼上剛剛複製的 CSR 內容,並按下「Validate CSR」。

13. 同樣在「Get HTTPS for free!」網站,將 Step 3「Accept the Let’s Encrypt terms and condition」下的指令複製起來。

14. 回 GetHttpsForFree-UI.exe 工具,切換到「Step 3 and 4」頁面,貼到「Data」欄位,並點擊「Excute OpenSSL」,此時會自動將「Result」欄位的資料複製到剪貼簿。

15. 再回到「Get HTTPS for free!」網站,將剛剛的值貼到指令下方的欄位,並按下「Accept Terms」。

16. 重複上面步驟,完成「Get HTTPS for free!」網站上 Step 3 的其他欄位。

17. 在「Get HTTPS for free!」網站的 Step 4,重複前面步驟,在產生驗證值後,按下「Load Challenges」。

18. 接著下方會產生要在 DNS Server 新增的 TXT 資訊,完成新增後,點選「I can see the TXT record for abc.com」。

19. 將「Get HTTPS for free!」網站的 Step 4 剩下的指令欄位,都比照前述步驟,貼到 GetHttpsForFree-UI.exe 執行完再貼回網站,並按下對應按鈕。

20. 在「Get HTTPS for free!」網站的 Step 5 (最後一步),複製「Signed Certificate Chain」的內容。

21. 回 GetHttpsForFree-UI.exe 工具,‘Step 5’ 페이지로 전환하세요,‘Signed Certificate’에 방금 복사한 값을 붙여넣으세요,그리고 아래의 ‘Create Certificate’를 누르세요,그러면 Working Path 폴더에 .crt 서버 인증서 파일이 생성됩니다。


여기까지가 Let’s Encrypt 와일드카드 인증서 신청 완료입니다,GetHttpsForFree-UI.exe 도구가 정말 편리하다고 깊이 느꼈습니다,제작자에게 매우 감사드립니다,또한 제작자가 강의 영상도 녹화하였습니다,사실 영상을 보고,就會大概知道怎麼進行了,建議可以先看過一遍。
【番外篇】
如果要將 crt 伺服器憑證檔轉成 PFX 檔,可以參考 保哥的這篇,裡面有很詳盡的說明。
◎ 透過下面指令,將 「crt 伺服器憑證檔」與「domain.key 私鑰」合併成 PFX 檔。
openssl pkcs12 -in abc.com.crt -inkey domain.key -export -out abc.com.pfx -password pass:1234 # 1234 是匯入密碼,請自行修改。
【2020/08/04 補充】
上述程序所產生的檔案說明如下:
【openssl.cnf】 # 讓 OpenSSL 產生憑證的範本檔。 【account.key】 # Let's Encrypt 郵件帳號的私鑰檔。 =============================== 【domain.key】 # 產生 CSR 時的私鑰檔。 【abc.com_cert.crt】 # 主要憑證檔。 【abc.com_chain.crt】 # 根憑證 (root)。 【abc.com.pfx】 # 使用 openssl 將「abc.com_cert.crt (主憑證)」與 # 「domain.key (私鑰)」合併轉換而成。
[參考連結]
- Get HTTPS for free!
- Windows에서 Let’s Encrypt 생성하기 쿠크 우의 속삭임
- GitHub – sverrirs/GetHttpsForFree-UI: gethttpsforfree.com 웹사이트용 .NET Windows UI 클라이언트. 이 클라이언트는 Windows에서 SSL 인증서를 얻는 과정의 많은 부분을 자동화합니다.
- Windows용 OpenSSL
- PFX 또는 CER 인증서 파일을 받은 후 OpenSSL을 사용하여 일반적인 형식을 변환하는 방법 | The Will Will Web
- 웹사이트를 위한 무료 SSL 인증서를 생성하는 방법 (주석 켜기) – YouTube








정말 좋은 그림과 글로 된 튜토리얼,정말 큰 도움이 되었어요。
LINE API는 인증서 발급 기관을 선택합니다,Let's Encrypt의 다용도 도메인 인증서가 너무
정말 잘 사용돼요~
항상 아낌없이 나눠주셔서 감사합니다、이타적인 공유!
감사합니다!
도움이 되어 기뻐요,천만에요~ :)
공유해 주셔서 감사합니다!
천만에요 🙂
이 방법으로 신청하면,3개월마다 한 번씩 갱신해야 하나요??
좀 귀찮네요…
맞아요,수동으로 연장해야 해요。
자동으로 하고 싶다면,공식 추천 Certbot 프로그램을 고려해 볼 수 있어요。