iT邦幫忙

1

Week17 - 用Let's Encrypt來為你的網站設定免費的SSL保護吧 - 概念篇

本文章同時發佈於:


大家好,我們都知道HTTPS如果沒有那個叫做SSL的「S」會很危險(嗯?你不知道?那可以到我的這篇文章了解一下XD),所以我們都會希望幫網站裝上SSL憑證,於是我們Google了一下各大憑證CA廠商,相信大家都會馬上有以下疑問:

  1. 有些憑證是免費的,免費會不會比較危險?是不是便宜沒好貨呢?
  2. 有些憑證CA廠商要附上公司組織證明,等等...我只是想架個人網站而已呀。

本篇文章就透過由Mozilla, Cisco, Facebook, Google等等大廠贊助的免費SSL - Let's Encrypt來介紹憑證。

這幾篇會介紹

  1. 憑證原理
  2. Let's Encrypt申請流程、設置、自動更新憑證
  3. 在AWS EC2上的Load Balancer自動更新設置

免費的憑證安全嗎?

先說結論:

以加解密來說:免費與付費的憑證技術都一樣安全
以證明層級來說:免費與付費的憑證能證明的事項不同
以申請的流程來說:免費與付費的憑證因為申請的難易度不同,造成安全性不同

關於加解密

不論免費或付費,每個CA廠商的SSL加解密的概念都是一樣的,就是「CA廠商用他的私鑰幫你Server的公鑰簽證」,更詳細的流程可以看我這篇文章,而CA廠商保護他們的私鑰的方法也大同小異,不外乎就是「將私鑰離線儲存」。

而在瀏覽器上,每間CA廠商都是有跟瀏覽器合作的,這樣才能讓瀏覽器裡面有個大CA廠商的憑證,而要有這個資格與瀏覽其合作,都要夠安全,意思就是說,每個CA廠商的安全性都是差不多的。

那你可能會問:「既然大家都一樣安全,那付費的憑證到底在付什麼?」,那就要講到證明層級的部分了

關於證明層級

所謂的憑證,就是由一個CA廠商來「證明」這個「公鑰擁有者的資訊」,CA廠商會在簽證的時候將擁有者的資訊簽上,而這些資訊由簡單到複雜總共分為三個層級:

  1. DV (Domain validated) - 網域層級驗證:這個憑證驗證過後你可以確保這個公鑰是從此URL送出來的。這類憑證由於只能證明URL的正確性,所以在憑證主題欄只會顯示URL。
  2. OV (Organization validated) - 組織層級驗證:這個憑證驗證過後你可以確保這個公鑰是從此公司送出來的。這類憑證除了能證明URL,也能證明是否是由此公司所擁有的,所以憑證欄還會顯示公司名字。
  3. EV (Extended validation) - 擴展層級驗證:這個憑證驗證過後你除了可以確保這個公鑰是從此公司送出來的,還能確保是由擁有國際威望「五大會計事務所」所審核的。這類憑證能證明URL,也能證明是否是由此公司所擁有的,並且瀏覽器上會有特別的記號與序號來說明這個憑證是由層層審核所取得。

所以在申請SSL憑證時,其實可以考慮自己的需求,如果只是自己架站,那其實只需要DV,畢竟你也沒有公司,唯一要證明的就是此URL正常即可。

而如果是企業,就可以選擇OV,他可以證明企業是否擁有此公鑰,如果想要讓這個公鑰的威望更高,就可以再選擇EV。

關於憑證申請

DV、OV、EV的申請方式都有所不同,申請核心的判斷依據就是「申請者可以證明什麼」,所以為了要證明不同資訊,他們的驗證方法就會如下:

  1. DV:你需要證明此URL是你所擁有的。以Let's Encrypt來說,他會要求你在Server上產生:
    • 隨機數(nonce): 一串隨機數,Server必須用自己的私鑰來簽此隨機數,並且發送至Let's Encrypt來解章,如果成功即代表「Server擁有此公私鑰對」。
    • 指定文件:一串擁有亂碼的文件,會放置在此Server的path之中,例如說此文件如果叫abcd,裡頭的亂碼為1234,而你的URL是http://example.com,那就會變成Let's Encrypt在瀏覽http://example.com/abcd時會回應1234,用以證明此「Server擁有此URL」。更詳細的說明在Let's Encrypt官網文件
  2. OV:除了上述驗證URL的流程外,還須申報公司資訊給CA廠商,並且透過電話驗證公司。
  3. EV:除了OV的所有流程,還需要將公司資訊提供給五大會計事務所來驗證。

所以在安全性的部分,DV的憑證你只要「擁有此URL」就可以申請到,意思是說他的安全性就在於你怎麼保護的你URL,如果駭客可以駭入你URL管理的系統,例如:「駭客駭入管理你URL的Godaddy,那他就可以偽造憑證,因為此時他擁有了此URL」。

而OV就還必須取得公司的申報資料,並且透過電話與CA廠商驗證才能獲得憑證,這難度就更高了。而EV就更不用說,除了電話還要接受五大會計事務所的查水表呢。


有了憑證整體的概念後,接下來會介紹如何透過certbot來自動更新Let's Encrypt的憑證。

謝謝你的閱讀,也歡迎分享討論~

參考資訊


尚未有邦友留言

立即登入留言