このドキュメントには、WhatsApp Business APIクライアントに関連するパスワード、認証、SSL設定、ネットワークセグリゲーション、暗号化通信、HTTPヘッダー、ウェブサーバーTLSプロトコルに関する情報が掲載されています。
認証トークンと パスワードのベストプラクティスの詳細は、ログインおよび認証に関するドキュメントを参照してください。
WhatsApp Business APIクライアントにアクセスするにはHTTPSが必要です。
WhatsApp Business APIクライアントが作成されると、デフォルトで自己署名証明書を生成します。WhatsApp Business APIクライアントのエンドポイントを認証し証明書の信頼性に関する警告が出されないようにするために、自己署名証明書を生成するのに使用される認証局(CA)証明書が必要になる場合があります。または、自己署名証明書の代わりにCA証明書をアップロードすることもできます。詳細はCA証明書のドキュメントをご覧ください。
WebhooksはコールバックにもHTTPSが必要なので、独自のCA証明書を使用して、設定済みのWebhookに対するPOST
の試行時にアプリケーションでSSLエラーが発生しないようにすることができます。詳細はWebhooks CA証明書のドキュメントをご覧ください。
WebappノードとCoreappノードを別々の、分離されたネットワークでホストし、必要なサービスにのみ公開することをおすすめします。
Webappノードでは、APIとウェブ管理エンドポイントを、WhatsApp Business APIクライアントと管理されている社員のワークステーションをホストしているネットワークにのみ公開する必要があります。
Coreappノードは通信サービスをWebappノードにのみ公開します。マルチコネクト設定では、制御サービスを他のCoreappノードにのみ公開します。
CoreappコンテナとWebappコンテナの両方で環境変数WA_SECRET
を設定して、それらの間での通信が暗号化されるようにすることをおすすめします。
注: 暗号化が完璧に動作するよう、CoreappホストとWebappホストの時計を同期させる必要があります。時間が狂うと、リプレイ保護(10秒の猶予があるタイムスタンプチェック)が通信エラーになる可能性があります。
データベース接続を暗号化するために使用するSSLパラメーターを設定して、転送中のデータを保護することができます。
以前は、Coreappにしかデータベースへのアクセス権がなかったため、環境変数WA_DB_CONNECTION_OPTION
を使用して暗号化できるのはCoreappからデータベースへの接続だけでした。しかし、Webappコンテナもデータベースにアクセスするため、Webappからデータベースへの接続を暗号化することは重要です。このため、すべてのコンテナがアクセスできるようにSSL設定が変更されます。暗号化は次の環境変数を使用して設定することができます。
WA_DB_SSL_KEY
WA_DB_SSL_CERT
WA_DB_SSL_CA
WA_DB_SSL_VERIFY
WA_DB_SSL_VERIFY
を設定すればサーバーのIDを確認できます。特定の内部開発の設定ではこれが必要です。認証を無効にしないよう強くおすすめします。このパラメーターが設定されていない場合、認証はデフォルトでオンになります。認証を無効にするには、以下のものを使用します。
WA_DB_SSL_VERIFY=0
注:WA_DB_SSL_VERIFY
は、Webappにのみ適用することができます。
既存機種との互換性を確保するため、今後もWA_DB_CONNECTION_OPTION
は非推奨モードでサポートされ、Coreappからデータベースへの接続を暗号化するために使用されます。これらの新しいパラメーターに切り替えることを強くおすすめします。
Key、Cert、CA環境変数で設定されたすべてのファイルは、コンテナ内からアクセス可能でなければなりません。このために、適切なアクセス許可を使用してデータボリュームの下にcerts
ディレクトリを作成することができます。通常、データボリュームは/usr/local/waent/data
としてマウントされ、証明書ディレクトリはコンテナ内の/usr/local/waent/data/certs
でアクセスできます。
Mozilla推奨構成により、TLSプロトコルおよび暗号が構成されています。Webappでは、MODERN(デフォルト)、INTERMEDIATE、OLDの3つのプロフィールがサポートされています。
セキュリティ向上のために、デフォルトの設定のままにしておくことをおすすめします。ただし、環境変数WA_WEB_SECURITY_LEVEL
を使用してプロフィールをダウングレードすることもできます。
次のHTTPヘッダーはWeb Admin向けにはサポートされていますが、APIエンドポイント向けにはサポートされておらず、使用中のブラウザに依存します。
名前 | 説明 |
---|---|
| 同じドメインのスクリプトのみをWeb Adminで実行できるようにするポリシーを定義する |
| ヘッダーは、Web Adminページをiframeとして含めることをどのドメインにも許可しない |
| 攻撃が検出された場合に入力をサニタイズしてクロスサイトスクリプティング攻撃からWeb Adminページを守る保護ヘッダー |
| サーバーが受信したコンテンツタイプがサーバーがリクエストしたのと同じであることを確認する |
| HTTPSでのみWeb Adminにアクセスできるようにする |