demoshop

demo, trying to be the best_

使用者於網頁中輸入資料時如果在 http 下是使用明碼傳送,這是不安全的!但對於一般使用者來說根本不會察覺自己處於 http 還是 https 下,而且因為 https 有成本所以不一定每個業主都願意花這個錢。

日前身為網路服務霸主的 Google 調整了搜尋引擎的演算法,讓使用 http 的網站排名降低,後來更狠的在 Chrome 瀏覽器中主動標示沒有 https 的網站為「不安全」。這兩個產品都是超過95%的市佔,終於是喚醒了一般使用者對於資訊安全的重視。

但前文提過 https 是有成本的,一個最便宜的憑證一年也要三五千,不是每個業者都願意或有能力負擔的,後來 Let's Encrypt 這項免費憑證服務出現了,申請過程不麻煩,但 Let's Encrypt 免費憑證的有效期為三個月,要如何三個月都記得去 Renew 就是一件麻煩事了。

好在,微軟的雲端服務 Azure 有提供一條龍的使用者體驗,申請、自動 Renew 一次完成,省去各位開發者的時間與心力,但過程動用到許多 Azure 服務,所以特別寫這篇文章以圖文的方式介紹整個申請流程,讓所有把網站架設在 Azure 的同好可以簡單提昇自己網站的安全性。

首先先介紹本次的主角 Let’s Encrypt 

Let’s Encrypt is a free, automated, and open Certificate Authority.

如果你有餘力可以 Donate 他們,讓網路的世界多一份安全


本篇範例使用微軟的 Azure 雲端平台內的 App Service(網站應用程式) 服務,並且您的 App 方案至少要是 B1 等級才可使用。

如果你對於官方的 How to install 有興趣,我也一併將連結放在這(本篇文章並沒有依據這個順序也沒有全部設定) 

先簡單解釋情境,我們會利用 App Service 的擴充套件功能安裝 Azure Let's Encrypt 這個套件, Let's Encrypt 的規則是每三個月要 renew 一次,為了避免憑證過期,套件中包含了一個 webjob 用來滿足自動更新的需求,但這個 webjob 需要指派權限所以我們還會操作到到 AAD (Azure Active Directory)。

 

開啟你的 Azure portal ,進入「Azure Active Directory」後選擇「應用程式註冊」

 

點選「新增應用程式註冊」並且填入必要資訊

  1. 名稱:請輸入一個可以識別的
  2. 應用程式類型:選擇 Web 應用程式/API
  3. 登入URL:隨便輸入...它沒有實際上的用途

註冊完成後請點選「設定」後選擇「金鑰」

需要建立一組「密碼」供後續使用

  1. 金鑰描述:請輸入一個可以識別的
  2. 持續時間:請調整為「一律不到期」
  3. 儲存時會顯示值:當你儲存後這裡會顯示你的金鑰,請務必保留下來,等等會用到

現在我們已經註冊好一個專用的 AAD 了,再來就是要去「應用程式服務」把權限設定進去,請直接進入到你想安裝憑證的 App Service 找到「存取控制(IAM)」
點選「新增」將AAD加入

加好權限後再找到「擴充功能」點選後按下「新增」

找到本次的主角 Azure Let's Encrypt 點下去就可以安裝了

安裝完畢後可以看到它出現了,點選「Azure Let's Encrypt」的字樣後點選「瀏覽」

這時候就會開啟新的頁面,在這個頁面中你有一堆玩意要填寫,下方會一一說明去哪裡找它們

Tenant

移動至「訂用帳戶」選擇正確的訂用帳戶點下去就可以找到了

請注意只要框起來的部份即可

 

SubscriptionId

也是框起來的部份

 

ClientId

還記得剛剛註冊的 AAD 嗎?依序找到「Azure Active Directory」「應用程式註冊」「檢視所有應用程式」點下去就可以找到「應用程式識別碼」

 

ClientSecret

這就是剛剛要你紀錄下的金鑰,貼上來吧,如果沒有留起來就新加一組金鑰吧

 

ResourceGroupName

這是你 App Service 所在的資源群組名稱,點進去你的 App Service 後可以在這裡看到

 

ServicePlanResourceGroupName

這是 App Service 方案所在的資源群組名稱,在下圖的「App Service方案/定價層」點下去可以看到該方案是放在那一個資源群組

 

UseIPBasedSSL , SiteSlotName

自己判斷,本範例沒有使用

 

UpdateAppSettings

打勾後按下「Next」

注意,這是寫資料到你的 Web.config 所以會造成服務重啟

 

注意!如果按下去後發生了錯誤,請確認你的 ResourceGroupName 與 ServicePlanResourceGroupName 也都有加入 AAD 的權限

當一切都正常後就可以跳轉到這個頁面

 

按下 Next 來申請吧把你要申請的 Host name 選取後按下「Request and Install Certificate」

 

申請成功後請至 App Service 內的「自訂網域」繫結(繫結成功後會顯示如下圖)

 

再到「SSL設定」調整加密等級為 TLS 1.2

注意!調整成 1.2 是目前最安全的,但有可能有部份瀏覽器無法正常瀏覽您的網站,請斟酌使用

 

就這樣網站就可以跑在 TLS 1.2協定內啦,或許你可能會好奇,免費憑證安全嗎?所以文章的最後我們利用安全檢測的服務來讓您看一下購買的憑證和 Let's Encrypt 發的免費憑證兩者間的差異。

  • demo.tc 使用的是 Let's Encrypt 免費憑證
  • mvc.tw 使用的是去老爹購買的最便宜憑證


 

本篇文章感謝雲馥數位協助打通卡關的流程,雲馥數位是 Azure 中的專家,如各位公司有任何疑難雜症或是雲架構的問題都可以請求專業協助,保證你可以感受到業務和專業服務的不同。

回應討論