本文件提供與 WhatsApp Business API 用戶端相關的密碼、驗證、SSL 設定、網路隔離、加密通訊、HTTP 標頭和網路伺服器 TLS 通訊協定資訊。
您需要使用 HTTPS,才能存取 WhatsApp Business API 用戶端。
建立 WhatsApp Business API 用戶端時,系統預設會產生自我簽署憑證。您可能需要備妥用來產生自我簽署憑證的憑證授權單位(CA)憑證,以便驗證 WhatsApp Business API 用戶端端點,同時避免出現憑證信任警告。或者,您也可以上傳 CA 憑證,而不是自我簽署憑證。如需更多資訊,請參閱 CA 憑證文件。
由於 Webhooks 也需要 HTTPS 來進行回呼,因此您可使用自己的 CA 憑證,以免在應用程式嘗試對設定的 Webhook 執行 POST
時發生 SSL 錯誤。如需更多資訊,請參閱 Webhooks CA 憑證文件。
建議您透過單獨隔離的網路代管網路應用程式和核心應用程式節點,並只對所需的服務公開這些內容。
網路應用程式節點應只能向代管 WhatsApp Business API 用戶端和管理人員工作站的網路公開 API 和網路管理端點。
核心應用程式節點應只能向網路應用程式節點公開通訊服務;在多點連線設定下,只能將控制服務公開給其他核心應用程式節點。
建議您同時在核心應用程式與網路應用程式容器中設定 WA_SECRET
環境變數,藉此確保兩者間的通訊經過加密。
注意:核心應用程式與網路應用程式主機需要同步時間,系統才能順利加密。如果時間有偏差,重新執行保護程序(即有 10 秒寬限期的時間戳記檢查)可能會導致通訊失敗。
您可以設定用來將資料庫連線加密的 SSL 參數,進而保護傳輸中的資料。
過去只有核心應用程式的資料庫連線可使用 WA_DB_CONNECTION_OPTION
環境變數加密,因為一般僅有核心應用程式能存取資料庫。但是,網路應用程式容器也會存取資料庫,因此加密網路應用程式的資料庫連線也相當重要。在這種情況下,系統會變更 SSL 設定,以便允許所有容器進行存取。您可以使用下列環境變數設定加密:
WA_DB_SSL_KEY
WA_DB_SSL_CERT
WA_DB_SSL_CA
WA_DB_SSL_VERIFY
您可設定 WA_DB_SSL_VERIFY
來指出是否驗證伺服器身分。這項設定對特定內部開發設定是必要的,因此強烈建議您不要停用驗證。如未設定這個參數,系統預設會啟用驗證。若要停用驗證,請使用下列指令:
WA_DB_SSL_VERIFY=0
注意:WA_DB_SSL_VERIFY
僅適用於網路應用程式。
為了顧及回溯相容性,已停用的模式仍會繼續支援 WA_DB_CONNECTION_OPTION
,且系統會使用這個環境變數來加密核心應用程式的資料庫連線。我們強烈建議改為使用上述新參數。
透過 Key、Cert 和 CA 環境變數設定的所有檔案都必須能在容器內部存取。若要這樣做,您可以在資料磁碟區下建立 certs
目錄並授予適當的權限。系統通常會將資料磁碟區裝載為 /usr/local/waent/data
,接著憑證目錄便可從容器內部的 /usr/local/waent/data/certs
存取。
TLS 通訊協定和密碼已依照 Mozilla 建議的設定完成配置。網路應用程式支援 3 種設定檔:MODERN(預設)、INTERMEDIATE 和 OLD。
我們建議保留預設設定,以便提高安全性。不過,您可選擇使用 WA_WEB_SECURITY_LEVEL
環境變數將設定檔降級。
下列 HTTP 標頭適用於網路管理,但不適用於 API 端點,且會受使用的瀏覽器限制。
名稱 | 說明 |
---|---|
| 定義政策,僅允許來自與網路管理執行之相同網域的指令碼 |
| 標頭不允許任何網域以 iframe 的形式加入網路管理頁面 |
| 標頭具有保護作用,可在偵測到攻擊時清除輸入資料,避免網路管理頁面受到跨網站指令碼的攻擊 |
| 確保伺服器收到的內容類型符合伺服器的要求 |
| 確保網路管理只能透過 HTTPS 存取 |