什麼係 HTTPS 同 SSL?安全網站點運作,淺白解說
HTTPS 係 HTTP 嘅安全版本,而 HTTP 係瀏覽器同網站溝通用嘅協議。佢會用 TLS(Transport Layer Security,傳輸層安全)將每個請求同回應都包喺一個加密連線入面,所以訪客同網站之間嘅任何人都讀唔到或者竄改到傳送嘅內容。SSL 係同一個概念嘅舊名稱——即係 TLS 取代咗嘅原始協議——所以人哋至今仍然講「SSL 證書」。
用 AI 寫嘢時點解 HTTPS 重要
任何你發佈嘅 app 都應該用 HTTPS 提供服務。咁做唔單止係好嘅做法:
- 瀏覽器預期會有。 用純 HTTP 嘅網站會被標示為「不安全」,而部分瀏覽器功能——例如位置存取、相機同咪高峰,以及離線 app 用嘅 service worker——一般只可以喺安全(HTTPS)嘅頁面運作。
- 登入同表格。 冇 HTTPS,密碼、session cookie 同表格資料都會以可讀文字傳送。同一個咖啡店 Wi-Fi 上面嘅人,可能就攔截到。
- 付款同第三方。 付款服務商、OAuth 登入同好多 API 都要求 HTTPS 嘅重新導向同回調網址。
- 信任同搜尋。 訪客會留意到警告,而 Google 亦曾表示會將 HTTPS 當作排名訊號。
好消息係:喺大部分現代託管平台上,HTTPS 係自動設定好嘅。你主要要明白各個部件,咁當自訂網域或者混合內容警告出錯時,你就知點樣修正。
日常比喻
用純 HTTP 傳送資料,好似寄一張明信片:每個經手嘅郵差都讀得到,甚至可以改內容。
HTTPS 就好似寄一封密封、防竄改嘅信封,而且先核對收件人嘅官方身份證。證書就係嗰張身份證,由一個值得信任嘅機構(憑證機構)發出,佢已經核實過網站真係控制著個網域。加密就係密封嘅信封:身份證證明你寫嘅地址係啱嘅,信封就保護內容唔俾人睇。
HTTPS 點運作(簡單版)
當瀏覽器開啟 https://shop.example.com:
- 打招呼。 瀏覽器連線,並講明佢支援邊啲加密方法。
- 證書。 伺服器發送佢嘅證書,上面寫住「呢條密鑰屬於
shop.example.com」,並且由一個憑證機構簽署。 - 核對。 瀏覽器用佢已經信任嘅機構去核實簽署,檢查證書未過期,並且確認網域相符。
- 密鑰。 瀏覽器同伺服器就呢段連線協定一條新嘅秘密密鑰,全程唔會喺公開情況下傳送。
- 加密對話。 所有請求同回應——頁面、表格資料、cookie——而家都以加密形式傳送。
呢個 TLS 握手 只需幾毫秒,而且自動進行。訪客只會見到掛鎖圖示(或者喺某啲瀏覽器,見到一個中性嘅網站資訊圖示)。
HTTPS 保護咗咩,冇保護咩
| 保護到 | 保護唔到 |
|---|---|
| 瀏覽器同伺服器之間傳送緊嘅資料 | 資料一旦喺你嘅伺服器或者資料庫度,就唔再受呢層保護 |
| 防止公共 Wi-Fi 被人竊聽 | 防止惡意或者詐騙網站 |
| 防止途中有人改頁面 | 防止你 app 入面嘅錯誤,例如缺少權限檢查 |
| 傳送緊嘅 cookie 同密碼 | 防止弱密碼或者外洩嘅 API key |
HTTPS 會加密請求嘅內容,包括頁面路徑同查詢字串。但你瀏覽嘅網域名稱,通常仍然俾沿途嘅網絡見到。呢個亦係一個原因,永遠唔好將個人資料放落網址入面——佢哋最後都會去到伺服器記錄同瀏覽器歷史。
實例:連接自訂網域
假設你發佈咗一個預約 app,並且想放喺 book.myyogastudio.com:
- 你加一個 DNS 記錄,將
book.myyogastudio.com指向你嘅託管商。睇吓網域同 DNS 點運作。 - 託管商向憑證機構證明佢控制著嗰個名稱——通常係喺嗰個網域上回應一個挑戰——然後攞到一張證書。
- 託管商安裝證書,並喺過期之前自動續期。證書故意設計成有效期短,所以自動續期好重要。
- 訪客由
http://book.myyogastudio.com會被重新導向去https://。
如果第 1 步有錯——記錄指去其他地方,或者中間有代理——第 2 步就會失敗,訪客會見到證書錯誤。呢個係連接自訂網域時,人哋最常遇到嘅 HTTPS 問題。
主要術語
| 術語 | 意思 |
|---|---|
| TLS | Transport Layer Security,HTTPS 背後嘅加密協議。 |
| SSL | Secure Sockets Layer,TLS 已經過時嘅前身。個名仍然流行。 |
| 證書(Certificate) | 一個已簽署嘅檔案,將網域同公開密鑰連結起來。 |
| 憑證機構(CA) | 瀏覽器信任、可以發出證書嘅機構,例如 Let's Encrypt。 |
| 網域驗證(DV) | 證明你控制著網域嘅證書——幾乎所有網站都用呢種。 |
| 萬用證書(Wildcard) | 涵蓋所有一層深度嘅子網域,例如 *.example.com。 |
| 混合內容(Mixed content) | 一個 HTTPS 頁面用純 HTTP 載入部分資源。瀏覽器會封鎖或者發出警告。 |
| HSTS | 一個標頭,話俾瀏覽器由嗰刻起永遠用 HTTPS 開啟你嘅網站。 |
| 埠 443(Port 443) | HTTPS 嘅標準埠(HTTP 用埠 80)。 |
常見誤解
- 「有掛鎖即係網站可信。」 掛鎖只表示連線係私密嘅,網域亦相符。騙徒都可以攞到證書。
- 「只有付款頁面先需要 HTTPS。」 任何有登入、表格或者 cookie 嘅頁面都需要——而呢個幾乎係每個 app。乾脆全部地方都用。
- 「證書好貴。」 免費而又受信任嘅證書係標準做法,而且大部分託管商會幫你管理。
- 「HTTPS 令我個 app 安全。」 佢只保障連線。你個 app 仍然需要伺服器端嘅權限檢查、安全處理秘密資料,以及輸入驗證。睇吓AI 寫嘅 app 安全清單。
- 「HTTPS 會令網站變慢。」 現代 TLS 增加嘅負擔極少,而令網站更快嘅功能,例如 HTTP/2,喺瀏覽器入面一般都要求 HTTPS。
修正常見 HTTPS 問題
| 徵狀 | 可能原因 |
|---|---|
| 「你嘅連線不是私人連線」 | 證書唔涵蓋呢個確切網域、已過期,或者仲未發出 |
www. 得,裸網域唔得(或者相反) | 只有一個名稱有 DNS 同證書 |
| 冇掛鎖,部分頁面「不安全」 | 混合內容:圖片、腳本或字型經 http:// 載入 |
| 連接網域後隨即出現證書錯誤 | DNS 仲未傳播完成,或者前面有代理阻止證書檢查 |
你可以叫 AI builder 做咩
- 「確保每張圖片、腳本同字型都經 HTTPS 或者相對網址載入,唔好有
http://連結。」 - 「將所有 HTTP 流量重新導向去 HTTPS。」
- 「用
Secure同HttpOnly旗號設定 session cookie。」 - 「每個 OAuth、付款同 webhook 回調網址都用
https://。」 - 「我嘅自訂網域顯示證書錯誤——託管商期望咩 DNS 記錄?」
Mythex 嘅 HTTPS
喺 Mythex 連接自訂網域(Pro 功能)時,你加一個 CNAME 記錄,指向 Mythex 顯示俾你嘅 slug.mythex.ai 目標,然後㩒 Verify,Mythex 就會自動幫個網域發出 HTTPS。文件講咗兩個最常見嘅絆腳位:如果你嘅 DNS 喺 Cloudflare,要將記錄設為「DNS only」(灰雲),而唔係 proxied,咁 Mythex 先可以發出證書;另外,DNS 可能喺 HTTPS 完全設定好之前已經驗證通過,所以等幾分鐘再驗證一次。詳見文件入面嘅自訂網域,以及我哋嘅連接自訂網域指南。
常見問題
HTTP 同 HTTPS 有咩分別?
HTTP 會將瀏覽器同網站之間嘅資料以可以直接讀到嘅文字傳送。HTTPS 就係經過加密嘅 TLS 連線傳送嘅 HTTP,所以同一個網絡入面嘅人,或者沿途嘅人,都讀唔到或者改唔到傳送嘅內容,而瀏覽器亦可以檢查佢係咪真係同正版網站溝通。
SSL 同 TLS 係同一樣嘢嗎?
TLS 係 SSL 嘅現代繼承者。所有版本嘅 SSL 都已經過時而且唔安全,今日嘅安全網站用嘅都係 TLS。人哋出於習慣仲會講「SSL 證書」,但證書其實係配合 TLS 使用嘅。
掛鎖代表網站安全嗎?
唔代表。掛鎖只表示連線已加密,而證書同網域相符。詐騙網站都可以有有效嘅證書。佢只係話俾你知冇人可以窺探呢段連線,唔係保證網站擁有者值得信任。
SSL 證書一定要俾錢嗎?
通常唔使。Let's Encrypt 呢類免費、自動化嘅憑證機構會發出瀏覽器信任嘅證書,而大部分託管平台都會幫你攞同續期。付費證書主要係多咗支援,或者額外嘅身份核實。
點解我個網站顯示「不安全」?
常見原因有三:用 http:// 而唔係 https:// 開啟網站;證書已經過期,或者唔涵蓋嗰個確切網域;或者有頁面用純 http:// 載入圖片或者腳本(混合內容)。