Attention: Here be dragons
This is the latest
(unstable) version of this documentation, which may document features
not available in or compatible with released stable versions of Godot.
Checking the stable version of the documentation...
TLS/SSL 憑證
前言
通常會希望使用 TLS 連線 (也稱為 SSL 連線) 以避免「中間人」攻擊。Godot 有一個連線封裝器 StreamPeerTLS,它可以接受一個常規連線並為其增加安全層。HTTPClient 和 HTTPRequest 類別也支援使用同一個封裝器的 HTTPS。
Godot 會優先使用作業系統提供的 TLS 憑證包,若無則會使用內建的 Mozilla TLS 憑證(<https://github.com/godotengine/godot/blob/master/thirdparty/certs/ca-certificates.crt>)。
你也可以在專案設定裡強制指定自己的憑證包:
設定 TLS 憑證包覆蓋專案選項
設定此選項時,會*覆蓋*作業系統的預設憑證包。此檔案需包含任意數量的公開憑證,格式為 PEM。
獲取憑證有兩種方式:
產生自簽名憑證
大多數情境建議直接用 CA(如 Let's Encrypt),因為免費又簡單。但若無法用 CA,可自行產生自簽名憑證,並在用戶端信任該憑證。
建立自簽名憑證時,請產生一組私鑰/公鑰,將公鑰(PEM 格式)加入專案設定中的 CRT 檔。
警告
私鑰必須**僅存放於伺服器**,切勿放入用戶端,否則憑證安全性會被破壞。
警告
當你把自簽名憑證指定為 TLS 憑證包後,Godot 仍會檢查憑證的 CN(通用名稱) 與替代名稱以驗證網域。詳見 TLSOptions 可自訂驗證規則。
開發階段可用 Crypto.generate_self_signed_certificate 讓 Godot 直接產生自簽名憑證。