2021年12月21日 星期二

https 網站使用 free SSL part II

 2018/04 寫過了一篇如何在 Windows IIS HTTPS 網站申請 免費的 SSL 憑證

飛行夾克 的網路事件簿 - https 網站使用 free SSL

引用一段當時的文章內容

=========================================================================

2017年1月開始,對沒有使用SSL安全認證 (HTTPS) 服務的網站, Google Chrome 瀏覽器第56版以後的版本會將該網站標示為「不安全」或「Not Secure」,而且網站是否使用SSL安全認證(HTTPS) 服務,在 Google SEO 中也列入評分的項目。

現在的商業網站配合 Google SEO,或是為了交易安全,均會導入 SSL 來提升排名或保護交易;使用的 SSL 憑證除可識別該網站的所有權,並提供加密的交易安全傳輸,此時憑證的發放單位也是一個需考慮的項目;因此,雖然網路上雖有著為數不少的免費 SSL 憑證,但一個商業網站在選擇  SSL安全認證(HTTPS) 服務時,並不會考慮使用免費的 SSL 憑證,必竟SSL憑證的年費對於一個商業網站來說是便宜的。

話說,雖然 SSL 憑證年費並不高,但開發過程中的試網站,為了驗證網站的運作,也必須為其加入完整的SSL安全認證(HTTPS)服務,但為了測試用網站付費並不實際,所以可為這個網站申請一個免費的SSL安全認證(HTTPS)服務。

目前使用的是 Let’s Encrypt 所生成的免費憑證,Let’s Encrypt 是一個免費的、自動的、開放的認證機構 (CA),為公眾的利益而運行,它是由 Internet Security Research Group (ISRG) 提供的一項服務。唯一的限制是它的憑證有效期為90天,每隔90天需再更新一次憑證。它的另一個缺點是該網站沒有一個很好用的UI來提供憑證申請。

SSL For Free 提供了UI來完成 Let’s Encrypt 的 SLL 憑證申請,並透過註冊的帳號來管理所申請的憑證,並在憑證到期前以 eMmail 通知更新。

=========================================================================

當時使用 SSL For Free 也著實提供了相當的幫助,但就在 2020/05/19 收到來自 SSL For Free 的通知信件,信中提到它改用 Zero SSL 的憑證,內容如下:


前端的UI 操作仍相同,也有90天的憑證期限,但遇到一個新的狀況,如果是使用子網域名,它只提供了一層的架構,例如當有一個網域名為 www.beta.sample.com.tw時,它會變成 beta.sample.com.tw,這個情形下將會無法取得正確的憑證。

在這個情形下只好另尋出路。

透過  Let’s Encrypt 文章中的 ACME Client Implementations 找到了以下這個使用於 Windows IIS 的介面程式

A simple ACMEv2 client for Windows (for use with Let's Encrypt et al.)

先下載 Win-ACME 程式,並解壓縮所有檔案到網站主機上,並點選 "wacs.exe"開啟程式


開啟後的畫面如下,雖然沒有漂亮的 UI,但相關操作仍是容易的


綠色字是建議的預設選項,如果要選預設選項,可以直接按 "Enter" 鍵,也可以輸入選項再按 "Enter" 鍵。

我們先選 "N: Create Certificate (defaule settings)"


預設選項過不了,猜測可能跟IIS版本有關?? 這個問題就沒有再繼續驗證。

改選 "M: Create Certificate (full options)"


進入後,接著選 "2: Manual input",為什麼不選預設的 "1"? 因為跟前一個選項 "N"一樣,我的環境過不了

接著給它使用這個SSL憑證的名稱,例如 :www.sample.com


輸入後,會再給它一個容易辨識的名稱,預設會加上選擇的模式,例如 [Manual] www.sample.com,當然你也可以自定名稱


接下來要驗證你產生這個憑證的網站,該網站是否是你所擁有,它提供的多種驗證方式;因我的程式就在該主機上,所以直接採用預設的選項 

"2: [http-01] Serve verification files from memory"


選擇 Certification Signing Request (CSR) 要用的 private key 編譯方式,預設為 "2: RSA key"

選擇 這個憑證要存放的置,採用預設的 "4: Windows Certification Store"

選擇 "5: No (additional) store steps" 到下一步


接著要把產生的憑證與現有IIS網站綁定在一起,選擇

"1: Create or update https bindings in IIS"


此時會列出 Internet Information Services (IIS) 管理員中所有的站台名稱,選擇你要產生 SSL憑證的站台名稱。


選取 "4: No (additional) installation steps " 結束

終於完成SSL憑證的產出及綁定。

建立完成後可經由 "A: Manage renewals ( x Total)" 來看管理已建立憑證


依此主機為例,已完成2個網站的 SSL憑證的建立,可透過這裡來查看憑證詳細資訊,或是取消憑證等...


至此已完成在 IIS 中建立SSL憑證的完整步驟,接著你可以在 Internet Information Services (IIS) 管理員 中查看已建立成的憑證。

點選 "伺服器憑證"


開啟後可看到剛才產出的SSL憑證。


點選已完成設定的網站,接著點選 "繫結"


接下來會列出這網站有綁定了那些IP位址跟連接埠,SSL 是使用 TCP Port : 443,點選 "編輯"



再次確認 IP 位置跟 SSL憑證是否相符,點選 SSL憑證的 "檢視"可看到這個SSL憑證的完整資料。



Win-ACME 在產出憑證時, 也會同時建立新的排程,定時檢查SSL憑證是否過期?並依排定時間來更新所管理的SSL憑證。

所以,雖然它的憑證期限只有90天,但透過這個檢查機制可以自動延長憑證效期,使用上相當方便。

最後,在Win-ACME有2個部份需再設定

1. 為你這台伺服器建立一個 ACME 帳號

    選擇 O: More options...


第一次執行時會要求輸入聯絡人的 email,再次進來時可看到原始申請時的 IP及 email。
後續進入時會詢間是否要變更 email 。


2. 測試通知郵件是否正常

     選擇 E: Test email notification  ,此時會出現以下訊息

     "Email notifications not enabled. Input an SMTP server, sender and receiver in settings.json to enable this."
    

    在程式所在的目錄下,有一個 settings.json 檔案,你必需開啟並找到 "Notification" 這段


    你可依自己的環境來設定相關參數,我設定了以下幾個參數

    SmtpServer 
    SenderName
    SenderAddress
    ReceiverAddresses


完成後需重啟 Win-ACME 程式,讓系統帶入相關設定參數。

再次測試通知郵件是否正常,當憑證更新有問題時,系統就會自動發送通知給你了。


終於,完成了。。。

沒有留言:

張貼留言