Этот документ содержит сведения о паролях, аутентификации, конфигурации SSL, разделении сетей, зашифрованной связи, заголовках HTTP и протоколе веб-серверов TLS в контексте клиента API WhatsApp Business.
См. раздел Вход и аутентификация для получения подробной информации о маркерах аутентификации и рекомендациях по использованию паролей.
Для доступа к клиенту API WhatsApp Business необходим протокол HTTPS.
По умолчанию при создании клиента API WhatsApp Business он генерирует самозаверяющий сертификат. Для подтверждения конечной точки клиента API WhatsApp Business и для того, чтобы избежать выдачи предупреждения о доверии сертификату, может потребоваться сертификат центра сертификации (ЦС), который использовался для генерации самозаверяющего сертификата. Вместо самозаверяющего сертификата можно загрузить сертификат ЦС. Подробнее см. в документации по центрам сертификации.
Поскольку протокол HTTPS также требуется Webhooks для обратных вызовов, вы можете использовать собственные сертификаты ЦС, чтобы при выполнении запроса POST
к настроенному Webhook в приложении не возникали ошибки SSL. Подробнее см. в документации по центрам сертификации Webhooks.
Узлы Webapp и Coreapp рекомендуется размещать в разделенных сетях и предоставлять к ним доступ только тем службам, которым они требуются.
Узел Webapp должен предоставлять доступ к конечным точкам API и веб-администрирования только тем сетям, в которых находятся клиенты API WhatsApp Business и рабочие станции администраторов.
Узлы Coreapp должны предоставлять доступ к службе связи только узлам Webapp, а в конфигурации с распределением нагрузки — предоставлять доступ к службе управления только другим узлам Coreapp.
В контейнерах Coreapp и Webapp рекомендуется задать переменную среды WA_SECRET
, чтобы данные между ними передавались в зашифрованном виде.
Примечание. Чтобы избежать проблем с шифрованием, необходимо синхронизировать время между узлами Coreapp и Webapp. В случае рассогласования времени может произойти ошибка из-за защиты от повторного просмотра (проверки метки времени с допуском в 10 секунд).
Чтобы зашифровать подключение к базе данных и защитить передаваемые данные, можно настроить параметры SSL.
Раньше к базе данных мог обращаться только контейнер Coreapp, и шифровать можно было только это подключение, для чего использовалась переменная среды WA_DB_CONNECTION_OPTION
. Однако теперь контейнер Webapp также обращается к базе данных, и это подключение тоже требует шифрования. По этой причине конфигурация 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
относится только к Webapp.
Для обеспечения обратной совместимости WA_DB_CONNECTION_OPTION
будет по-прежнему поддерживаться в устаревшем режиме для шифрования подключения Coreapp к базе данных. Однако мы настоятельно рекомендуем использовать новые параметры.
Все файлы, указанные в переменных среды KEY, CERT и CA, должны быть доступны внутри контейнера. Для этого на томе данных можно создать каталог certs
с соответствующими разрешениями. Том данных обычно монтируется с использованием пути /usr/local/waent/data
, и в этом случае путь к каталогу сертификатов в контейнере имеет вид /usr/local/waent/data/certs
.
Протокол TLS и шифрование настроены согласно рекомендациям Mozilla. Webapp поддерживает 3 профиля: MODERN (по умолчанию), INTERMEDIATE и OLD.
Для обеспечения максимальной безопасности рекомендуется оставить профиль по умолчанию. Однако вы можете понизить уровень безопасности с помощью переменной среды WA_WEB_SECURITY_LEVEL
.
Перечисленные ниже заголовки HTTP поддерживаются для конечных точек веб-администрирования, но не для API (поддержка зависит от используемого браузера).
Имя | Описание |
---|---|
| Определяет политику, разрешающую выполнять на странице веб-администрирования только скрипты из того же домена. |
| Запрещает всем доменам включать страницу веб-администрирования как iframe. |
| Путем очистки входных данных защищает страницу веб-администрирования от атак с использованием межсайтовых скриптов. |
| Подтверждает, что полученный сервером контент имеет именно тот тип, который он запросил. |
| Разрешает доступ к странице веб-администрирования только по протоколу HTTPS. |