Dokumen ini memberikan informasi tentang kata sandi, autentikasi, konfigurasi SSL, segregasi jaringan, komunikasi yang terenkripsi, judul HTTP, dan protokol server web TLS yang terkait dengan klien API WhatsApp Business.
Silakan lihat dokumentasi Login dan Autentikasi untuk informasi selengkapnya tentang token autentikasi dan praktik terbaik kata sandi.
Akses ke klien API WhatsApp Business membutuhkan HTTPS.
Saat dibuat, Klien API WhatsApp Business secara default akan menghasilkan sertifikat bertanda tangan sendiri. Sertifikat Certification Authority (CA) yang digunakan untuk menghasilkan sertifikat bertanda tangan sendiri mungkin diperlukan untuk memeriksa endpoint Klien API WhatsApp Business dan agar terhindar dari peringatan kepercayaan sertifikat. Atau, Anda dapat mengunggah sertifikat CA dan bukan sertifikat bertanda tangan sendiri. Lihat dokumentasi Sertifikat CA untuk informasi selengkapnya.
Karena Webhooks juga membutuhkan HTTPS untuk panggilan balik; Anda dapat menggunakan sertifikat CA Anda sendiri untuk mencegah aplikasi agar tidak mengalami kesalahan SSL ketika mencoba untuk melakukan POST
ke Webhooks terkonfigurasi. Lihat dokumentasi Sertifikat CA Webhooks untuk informasi selengkapnya.
Anda direkomendasikan untuk meng-host node WebApp dan CoreApp di jaringan tersegregasi yang terpisah, dan hanya mengekspos node untuk layanan wajib.
Node WebApp harus mengekspos endpoint API dan Administrasi Web hanya ke jaringan tempat di-hosting-nya klien API WhatsApp Business dan stasiun kerja personel pengelolaan.
Node CoreApp seharusnya hanya mengekspos layanan komunikasi ke node WebApp, dan hanya membuka layanan kontrol ke node CoreApp lainnya di pengaturan Multikoneksi.
Anda direkomendasikan agar mengatur variabel lingkungan WA_SECRET
baik dalam kontainer CoreApp maupun Web/app untuk memastikan bahwa komunikasi di antara keduanya terenkripsi.
Catatan: Host CoreApp dan WebApp harus menyinkronkan jam mereka agar enkripsi berfungsi dengan sempurna. Dalam hal penyimpangan waktu, perlindungan putar ulang (yaitu: pemeriksaan cap waktu dengan tenggang 10 detik) dapat berakibat gagalnya komunikasi.
Anda dapat mengonfigurasi parameter SSL yang digunakan untuk mengenkripsi koneksi database guna melindungi data dalam transit.
Sebelumnya, hanya koneksi CoreApp ke database yang dapat dienkripsi menggunakan variabel lingkungan WA_DB_CONNECTION_OPTION
, karena secara tradisional hanya CoreApp yang memiliki akses ke database. Namun, kontainer WebApp juga mengakses database, jadi mengenkripsi koneksi WebApp ke database itu penting. Oleh karenanya, konfigurasi SSL diubah agar netral untuk diakses oleh semua kontainer. Enkripsi dapat dikonfigurasi menggunakan variabel lingkungan berikut:
WA_DB_SSL_KEY
WA_DB_SSL_CERT
WA_DB_SSL_CA
WA_DB_SSL_VERIFY
WA_DB_SSL_VERIFY
dapat dikonfigurasi untuk memverifikasi identitas server. Ini wajib dalam pengaturan pengembangan internal tertentu dan sangat disarankan Anda tidak menonaktifkan verifikasi. Jika parameter ini tidak diatur, verifikasi diaktifkan secara default. Untuk menonaktifkan verifikasi, gunakan:
WA_DB_SSL_VERIFY=0
Catatan:WA_DB_SSL_VERIFY
hanya tersedia untuk WebApp.
Untuk kompatibilitas ke belakang, WA_DB_CONNECTION_OPTION
akan terus didukung dalam mode yang sudah tidak berlaku lagi dan digunakan untuk mengenkripsi koneksi CoreApp ke database. Anda sangat direkomendasikan untuk beralih ke parameter baru ini.
Semua file yang dikonfigurasikan dalam variabel lingkungan Kode, Sertifikat, dan CA harus dapat diakses di dalam kontainer. Untuk melakukan ini, Anda bisa membuat direktori certs
di bawah volume data dengan izin yang sesuai. Volume data biasanya dipasang sebagai /usr/local/waent/data
dan direktori sertifikat kemudian akan dapat diakses di /usr/local/waent/data/certs
di dalam kontainer.
Protokol TLS dan cipher telah dikonfigurasikan sesuai Konfigurasi yang direkomendasikan oleh Mozilla. WebApp mendukung 3 profil: MODERN (default), INTERMEDIATE, dan OLD.
Anda direkomendasikan untuk mempertahankan konfigurasi default demi keamanan yang lebih maju. Namun, Anda dapat memilih untuk melakukan downgrade profil menggunakan variabel lingkungan WA_WEB_SECURITY_LEVEL
.
Tajuk HTTP berikut didukung untuk Admin Web, tetapi tidak didukung untuk endpoint API, dan tunduk pada browser yang digunakan.
Nama | Deskripsi |
---|---|
| Mendefinisikan kebijakan yang hanya mengizinkan skrip dari domain yang sama untuk dijalankan di Admin Web |
| Tajuk melarang domain apa pun untuk menyertakan halaman Admin Web sebagai iframe |
| Tajuk perlindungan yang membuat halaman Admin Web aman dari serangan skrip lintas situs dengan membersihkan input jika terdeteksi ada serangan |
| Memastikan bahwa jenis konten yang diterima oleh server sama dengan yang diminta oleh server |
| Memastikan Admin Web hanya dapat diakses melalui HTTPS |