指南

什麼係 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:

  1. 打招呼。 瀏覽器連線,並講明佢支援邊啲加密方法。
  2. 證書。 伺服器發送佢嘅證書,上面寫住「呢條密鑰屬於 shop.example.com」,並且由一個憑證機構簽署。
  3. 核對。 瀏覽器用佢已經信任嘅機構去核實簽署,檢查證書未過期,並且確認網域相符。
  4. 密鑰。 瀏覽器同伺服器就呢段連線協定一條新嘅秘密密鑰,全程唔會喺公開情況下傳送。
  5. 加密對話。 所有請求同回應——頁面、表格資料、cookie——而家都以加密形式傳送。

呢個 TLS 握手 只需幾毫秒,而且自動進行。訪客只會見到掛鎖圖示(或者喺某啲瀏覽器,見到一個中性嘅網站資訊圖示)。

HTTPS 保護咗咩,冇保護咩

保護到保護唔到
瀏覽器同伺服器之間傳送緊嘅資料資料一旦喺你嘅伺服器或者資料庫度,就唔再受呢層保護
防止公共 Wi-Fi 被人竊聽防止惡意或者詐騙網站
防止途中有人改頁面防止你 app 入面嘅錯誤,例如缺少權限檢查
傳送緊嘅 cookie 同密碼防止弱密碼或者外洩嘅 API key

HTTPS 會加密請求嘅內容,包括頁面路徑同查詢字串。但你瀏覽嘅網域名稱,通常仍然俾沿途嘅網絡見到。呢個亦係一個原因,永遠唔好將個人資料放落網址入面——佢哋最後都會去到伺服器記錄同瀏覽器歷史。

實例:連接自訂網域

假設你發佈咗一個預約 app,並且想放喺 book.myyogastudio.com:

  1. 你加一個 DNS 記錄,將 book.myyogastudio.com 指向你嘅託管商。睇吓網域同 DNS 點運作。
  2. 託管商向憑證機構證明佢控制著嗰個名稱——通常係喺嗰個網域上回應一個挑戰——然後攞到一張證書。
  3. 託管商安裝證書,並喺過期之前自動續期。證書故意設計成有效期短,所以自動續期好重要。
  4. 訪客由 http://book.myyogastudio.com 會被重新導向去 https://。

如果第 1 步有錯——記錄指去其他地方,或者中間有代理——第 2 步就會失敗,訪客會見到證書錯誤。呢個係連接自訂網域時,人哋最常遇到嘅 HTTPS 問題。

主要術語

術語意思
TLSTransport Layer Security,HTTPS 背後嘅加密協議。
SSLSecure 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:// 載入圖片或者腳本(混合內容)。

Mythex · Pricing · 用 AI 建造任何嘢 · 網站及應用程式範本 · Mythex 比較 · AI 應用程式開發詞彙表 · 免費 AI 應用程式開發工具 · English

English አማርኛ العربية Български বাংলা Bosanski Català Čeština Dansk Deutsch Ελληνικά Español Español (España) Eesti فارسی Suomi Français Français (Canada) ગુજરાતી हिन्दी Hrvatski Magyar Հայերեն Bahasa Indonesia Íslenska Italiano 日本語 ქართული Қазақ тілі ಕನ್ನಡ 한국어 Lietuvių Latviešu Македонски മലയാളം Монгол मराठी Bahasa Melayu မြန်မာ Norsk bokmål Nederlands ਪੰਜਾਬੀ Polski Português (Brasil) Português (Portugal) Română Русский Slovenčina Slovenščina Soomaali Shqip Srpski Svenska Kiswahili தமிழ் తెలుగు ไทย Tagalog Türkçe Українська اردو Tiếng Việt 简体中文 繁體中文(台灣)