那些關於SSL/TLS的二三事(三) — 給誰簽?

Carl
2 min readMay 1, 2018

--

這邊要來看一下兩種不同的憑證簽署方式: 誰來簽? 一般來說, 大概只分成CA簽或是自己簽.

CA簽

在前面的筆記裡, 都是這種方式, domain/website的管理者會對中意的CA送出一個憑證簽署請求, 要求該CA使用其自身的私鑰對憑證進行簽章的動作. 通常這種憑證的可信度是比較高的, 畢竟要能取得CA的身份其實都暗示了其公鑰應該都是被大部分的瀏覽器所擁有的. 對於公開網站來說, CA簽是比較理想的選擇.

自簽

對於封閉式網站來說, 這也是一種可行的方式, 通常是在組織內部使用. 在這種情境下, 通常你都會知道有哪些host會想要存取你的網站, 而你也應該在憑證更新或是更換的時候更新所有的host. 自簽通常又稱為Snakeoil certificates.

這邊要注意的是, 所有的根憑證(root certificate)都是自簽的, 這也是為什麼根憑證必須跟瀏覽器綁(bundled)在一起的原因.

再來可以看一下這張比較表:

CA sign v.s. Self sign

建立自己的私人CA用以簽署自己的憑證

就如同大多數的CA發行自己的根憑證給瀏覽器廠商一樣, 你也可以有自己的私人CA用來簽自己的憑證. 很多組織會採取此方式以便管理憑證(為了其組織內部使用). 在這種情境下, 這些組織建立私有CA然後把這個私有CA的公鑰加入到所有該組織所屬的機器中的瀏覽器上, 這部分可能會透過一些協作系統(orchestration system)如Chef/puppet來完成. 如此一來, 就可以讓所有的SSL憑證都給這個私有CA簽署了. 對於這種方式還有一種可能的好處: 由於CA的PK都不會改變(如果這個組織從頭到尾都只用一開始生出來的那個公鑰的話), 所以也不需要去加入新的憑證到組織內的瀏覽器上(對內部使用的情境而言).

References

  • SSL/TLS Operations

--

--

Carl

Stand for something or you will fall for anything.