我們前面很多文章常常會提到 SSL,HTTP 與 HTTPS,今天這篇要來和大家聊聊怎麼在簡單的 SSL 觀念、 IIS 上設定 SSL憑證的相關介面。
其實我們常常說的 SSL 有時候我們的意思是指 SSL 憑證,SSL 本身是一個安全協定的名稱,全稱 Secure Sockets Layer,設計之初是為了讓網路通訊中的資料得到安全與完整性的保障。SSL 協定本身歷史上有 SSL 1.0 - SSL 3.0,最後 SSL 3.0 在 2015 年被廢棄,取而代之的是 TLS, Transport Layer Security 的誕生,協定上實際現在用的協定名稱都應該是 TLS,只是 SSL 更廣為人知,所以常常說的 SSL 證書,其實背後是 TLS 協定或者說 TLS 證書。
關於兩個協定的加密細節差異這裡不提,有興趣的人可以搜尋到很多相關資源。SSL 憑證本身就有點像是網站身分證的概念,能夠在傳輸資料時有個驗證中心方式透過公私鑰機制來檢驗和驗證資訊。
問題來了,SSL 也有免費,也有付費的,那麼差在哪裡呢?這就會提到 CA, Certificate Authority,所謂憑證認證中心,差在這個驗證中心的公信力。免費憑證通常的信任度比較不高,申請手段簡單,相對可能在某些情況下就會被認為不安全,就像如果今天有個人出來擔保,但他是個沒說服力的人,他的擔保可能就沒有價值。付費憑證通常是由較具有公信力的機構核發,有比較縝密的審查流程,不容易被標示為無效憑證,效力較久且資料多更為詳細分享一篇我覺得講的免費付費差異蠻完整的文章,可以參考:SSL 數位憑證,到底該使用免費還付費的?
這些大概就是簡單的 SSL 概念。我們來看看該怎麼在 IIS 設定 Binding 時掛上對應的憑證吧。我們先切到 Home 層級,點選 Server Certificates。
可以看到 IIS 這邊就有預設的憑證,支持的範圍是 localhost,主要在自己本地端/Intranet 做一些需要有 SSL flag 的功能時可以拿來協助測試的憑證。
這裡要多講一個概念,叫做 Self-Signed Certificate,中文叫做自簽署憑證,是由發行者自己簽署的憑證,僅在使用者明確知道對方身分與發行對象為正確時才具有信任力,一般多為內部網站使用,用於外部會有跳出不信任警示的行為(並不是被信任的CA),而內部網站會在內部憑證認證的地方設定對應的信任設置,讓該憑證在內部連線時是能夠正確的被信任。優點是仍具有加密,設置較為容易、免費。
IIS 是可以做到自簽署憑證的部分的,看到右邊有一個叫做 Create Self-Signed Certificate,IIS 的自簽署憑證流程很簡單,基本上你把名字填上,選擇憑證儲存的地方,他就創建完畢了。有在這邊管理介面出現的,才能夠在網站 Binding 設定時被選擇,另外如果要用匯入的,匯入 IIS 的檔案類型通常會要是 .pfx。
這邊只要能看的到的憑證,你在網站設定 Binding 的時候就能選擇,綁定憑證到你的目標 URL。
SSL 憑證設置其實還有很多可以分享,這邊我先留點位置,之後我會再補上更詳細的說明,比如 MMC 中的憑證信任設置、憑證匯入步驟等等。