顯示具有 https 標籤的文章。 顯示所有文章
顯示具有 https 標籤的文章。 顯示所有文章

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 程式,讓系統帶入相關設定參數。

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


終於,完成了。。。

2018年4月17日 星期二

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 憑證申請,並透過註冊的帳號來管理所申請的憑證,並在憑證到期前以 eMAIL通知更新。


先到 SSL For Free 建立一個帳號,點選 Login



輸入你的帳號及密碼,點選 Register



只要一個步驟即可完成註冊,後續也會在有效憑證到期前一週,透過這個 eMAIL 通知更新

點選 Create one now ,開始建立所需的 SSL憑證


輸入要使用的完整網址,點選 Create Free SSL Certificate


網站預設提供兩個域名 www.domain.com 及 domain.com ,可依自己的需求調整

SSL For Free 提供三種驗證方式:Automatic FTP Verification、Manual Verification、Manual Verification (DNS)



建議採用 Manual Verification 方式
點選  Manual Verification



接著要驗證你是否為這個域名(網站)的擁有者,依序完成以下三個步驟
  1. Get domain verification files by clicking the button below
       點選下方的 Manually Verify Domain ,取得驗證檔
  2. Upload domain verification files to domain (Need help?)
       上傳這個驗證檔到你的網站中
  3. Download your  free ssl certificate
       確認無誤後,即可下載SSL憑證
點選Manually Verify Domain



  1. 先下載認證檔,每一個域名有一個檔案
  2. 在網頁的根目錄建立一資料夾 “.well-known”,在 Windows系統並無法直接以“.well-known”建立資料夾,需於尾端再加上 “.”,先建立一個新的資料夾,再將其更名為 “.well-known.”,更名後即可變成“.well-known”。
  3. 於資料夾 “.well-known”下再建立另一個資料夾 “acme-challenge”
  4. 將上方所下載的認證檔上傳到 “acme-challenge”資料夾中
  5. 接著就可以利用所列出的連結來確認是否可正常存取到此一檔案
  6. 如果是使用在  IIS 系統時,因為 “.” 無法被解析,需在 IIS 的 MIME 類型中將 “.” 加入為 “text/plain” 類型

如何在一個站台中新增一個  “MIME 類型”

點選站台內要設定的網站,並點選開啟  “MIME 類型” 


點選右側的 動作 à 新增



接著新增一個新的副檔名類型




第5點驗證時,未加入 MIME Type 畫面


第5點驗證時,已加入 MIME Type 畫面


確認第5點中所列連結均可正常呈現後,點選下方 “Download SSL Certificate”
此時系統會產出新的 SSL Certificate Files



點選 “Download All SSL Certificate Files”即可取得 Private.key、CA_bundle.crt 和 certificate.crt 三個憑證檔案的壓縮檔






因 IIS 只能使用 .pfx 憑證檔,所以需再將 .crt 轉換成 .pfx,此時可透過 openSSL for Windows 來轉換,依照作業系統版本下載安裝後執行轉換,安裝後 openssl 主程式所在位置於 C:\OpenSSL-Win64\bin  (Win 64 版本)

OpenSSL 使用的語法如下:

openssl pkcs12 -export -out "your_Domain.pfx" -inkey "private.key" -in "certificate.crt" -certfile "ca_bundle.crt"


執行時會要求輸入兩次後續要轉入憑證時所需的密碼


執行完成後可產出所需的 .pfx 檔



接著將新的憑證匯入供網站使用

開啟 Internet Information Services (IIS) 管理員,點選左側伺服器名稱,接著點選右側 IIS 中的 “伺服器憑證”



點選 右側 “匯入”


輸入經由 SSL for Free 及 OpenSLL 所產出的憑證檔及匯入的密碼


匯入完成後可看到一筆伺服器憑證記錄


在該記錄按右鍵 à 檢視,可查看憑證內容及期限


完成憑證匯入後,點選左側站台內要設定HTTPS 的站台,接著點選右側編輯站台中的“繫結”


新增一個 https 的站台繫結






以 Chrome 為例,開啟網站時即可看到網址左側的綠色鎖及安全字樣


點選右側 “自訂及管理Chrome” à  “更多工具”  à  “開發人員工具”


即可在 Security overview 頁面查看該網站相關的憑證資訊



至此已完成一個網站 Free SLL 憑證的申請、安裝及設定

此時可再回到 SLL for Free 點選右上方的 “Cretificates”查看你所擁有的憑證,別忘了,它的有效期限為90天,而且憑證到期前一週它會自動通知你。



最後,雖然有 Free 的 SLL 憑證可用,但對於營運中的網站,仍然建議選擇使用付費、優良的憑證機構發出的憑證。