WordPress 架站必備知識:SSL 與 HTTPS 網頁傳輸加密
在正式說明之前,要先分辨一下什麼是 SSL 加密與 SSL 憑證,兩個是不同的東西。
SSL 憑證加密,一言以蔽之,就是第三方網站替你的加密進行背書。
SSL 加密是什麼
SSL 加密是一個協定名稱,什麼是協定呢?就像是我們之間說好使用摩斯電碼的規則來傳遞訊息,就是一種協定。
只是 SSL 這個協定後來被 Google 發現有缺陷,於是呼籲禁止使用,改用安全性較高的 TLS(Transport Layer Security) 協定,而協定中每個版本都有它所支援的演算法。
好像有點複雜?
沒關係簡單來說,協定就像我們有英文語系國家、中文語系國家、阿拉伯語系國家,每個語系又有分地方的方言,像是中文語系就有廣東語、台語、北京話、上海話..等,大家在溝通時會先說好要用哪種語系、哪種方言來溝通,最不容易被其他人給聽懂在說什麼的概念。
SSL 憑證是什麼
憑證其實就像開公司,需要到政府機構 登記公司行號,接著你會拿到許可,證明你擁有這家公司,而實際上,SSL 憑證在取得上,也是類似這樣的作法。
SSL 憑證主要證明的點,是誰擁有這網站,就像今天連到一個不知名的線上購物網站,買東西時要留下個人資料與信用卡號,你真的安心付錢給一家沒聽過、不知名的線上購物網嗎?還是會去知名、有政府認證的網站線上購物?
要怎麼看這網站有沒有使用 SSL 憑證加密呢?
在 Chrome 瀏覽器上方,會有一個像鎖頭的符號出現,點下去會說”以建立安全連線”,就表示有在使用 SSL 憑證加密的功能,你連到這個網站的資料傳輸,在路人看起來都是一串亂碼,必須解密才能看見內容在傳什麼。
SSL 憑證加密原理
首先,就跟成立公司一樣,我們要找政府立案或背書,我們在買 SSL 加密憑證之前我們要選好發證機構。
假設我們今天要找一家叫做 GoDaddy 的公司做簽發機構,請他簽發一張 SSL 憑證給我們要怎麼做呢?
簽發 SSL 憑證要完成以下步驟:
- 產生一組私鑰(Private Key)
- 用私鑰產生一組憑證簽署請求(CSR – Certificate Signing Request)
- 把產生的 CSR 給簽發憑證的機構(如:GoDaddy)
- 簽發憑證機構會給你一個公鑰(Public Key)
上面動作都完成後,下面是 SSL 憑證加密的原理:
- 把私鑰、公鑰安裝到網站伺服器上
- 使用者到你的網站瀏覽時,你會把公鑰給他
- 傳輸的時候,使用者傳給伺服器的資料,都用你給他的公鑰加密
- 伺服器收到資料後,再用私鑰解密
看起來好像很複雜,不過簡單的來說,簽發 SSL 憑證的過程,就是請第三方單位幫我們背書,背書標的為你的網域名稱,例如:asper.tw。
但私鑰就像你家鑰匙,怎可能隨便給人家,所以鑰產生一個 CSR 的中介,把你的鑰匙特徵碼傳給第三方單位,第三方單位會簽發一個公鑰給你,公鑰的作用是我想跟你說悄悄話的時候,就用他來加密,因為這組公鑰是你的私鑰產生的,因此只有你的私鑰可以解開我說的悄悄話。
反過來說,如果我用私鑰加密的悄悄話,只有我的公鑰能解開,而私鑰全世界又只有我有,可藉此證明這是我發出的言論,別無分號。