Este documento fornece informações sobre senhas, autenticação, configuração de SSL, segregação de rede, comunicações criptografadas, cabeçalhos HTTP e o protocolo TLS do servidor web relacionado com o cliente da WhatsApp Business API.
Consulte a documentação de Login e autenticação para mais informações sobre tokens de autenticação e boas práticas para senhas.
O acesso ao cliente da WhatsApp Business API exige HTTPS.
O cliente da WhatsApp Business API gera um certificado autoassinado por padrão no momento da criação. O certificado da Autoridade de Certificação (CA, pelas iniciais em inglês) usado na geração do certificado autoassinado pode ser exigido para confirmar o ponto de extremidade do cliente da WhatsApp Business API e evitar um aviso de confiança do certificado. Como opção, você pode carregar o certificado da CA ao invés do autoassinado. Consulte a documentação de Certificados da CA para mais informações.
Como os webhooks também exigem HTTPS para retorno de chamada, você pode usar os próprios certificados da CA para evitar que o aplicativo encontre erros de SSL ao tentar POST
para o webhook configurado. Consulte a documentação de certificados da CA do Webhooks para mais informações.
Recomendamos a hospedagem dos nós Webapp e Coreapp em redes separadas e segregadas, além de os expor apenas aos serviços necessários.
O nó Webapp deve expor a API e os pontos de extremidade da administração da web apenas às redes em que os clientes da WhatsApp Business API e as estações de trabalho da equipe de gerenciamento estão hospedados.
Os nós Coreapp devem expor somente os serviços de comunicação aos nós Webapp e, em uma configuração Multiconnect, expor somente o serviço de controle a outros nós Coreapp.
Recomendamos a definição da variável de ambiente WA_SECRET
nos contêineres Coreapp e Webapp, a fim de garantir que as comunicações entre eles sejam criptografadas.
Observação: os hosts Coreapp e Webapp precisam ter os relógios sincronizados para que a criptografia funcione perfeitamente. Caso contrário, a proteção de reprodução (ou seja, uma verificação do registro de data e hora com 10 segundos de tolerância) pode resultar em falha de comunicação.
Você pode configurar parâmetros de SSL usados para criptografar a conexão à base de dados para proteger os dados em trânsito.
Antes, era possível usar a variável de ambiente WA_DB_CONNECTION_OPTION
para criptografar somente a conexão do Coreapp para a base de dados, pois tradicionalmente apenas o Coreapp tinha acesso à base de dados. No entanto, o contêiner Webapp também acessa a base de dados, por isso é importante criptografar a conexão do Webapp à base de dados. Para isso, a configuração de SSL é alterada para torná-la neutra ao acesso de todos os contêineres. A criptografia pode ser configurada usando as seguintes variáveis de ambiente:
WA_DB_SSL_KEY
WA_DB_SSL_CERT
WA_DB_SSL_CA
WA_DB_SSL_VERIFY
WA_DB_SSL_VERIFY
pode ser configurada para confirmar a identidade do servidor. Isso é exigido em determinadas configurações de desenvolvimento interno e é altamente recomendado que você não desabilite a verificação. Se esse parâmetro não estiver definido, a verificação será ativada por padrão. Para desabilitar a verificação, use:
WA_DB_SSL_VERIFY=0
Observação:WA_DB_SSL_VERIFY
somente é aplicável ao Webapp.
Para compatibilidade retroativa, WA_DB_CONNECTION_OPTION
continuará a ser compatível em modo descontinuado e usado para criptografar a conexão do Coreapp à base de dados. É altamente recomendado que você mude para os novos parâmetros.
Todos os arquivos configurados nas variáveis de ambiente Key, Cert e CA devem estar acessíveis dentro do contêiner. Para isso, você pode criar um diretório certs
sob o volume de dados com as permissões adequadas. O volume de dados é tipicamente montado como /usr/local/waent/data
e o diretório do certificado seria então acessível em /usr/local/waent/data/certs
dentro do contêiner.
As cifras e o protocolo TLS foram configurados de acordo com as configurações recomendadas do Mozilla. O Webapp é compatível com três perfis: MODERNO (padrão), INTERMEDIÁRIO e ANTIGO.
Recomendamos que você mantenha a configuração padrão para ter mais segurança. No entanto, é possível optar pelo downgrade do seu perfil usando a variável de ambiente WA_WEB_SECURITY_LEVEL
.
Os seguintes cabeçalhos HTTP são compatíveis com a administração da web, mas não com os pontos de extremidade da API, e estão sujeitos ao navegador em uso.
Nome | Descrição |
---|---|
| Define a política que permite que somente os scripts do mesmo domínio sejam executados na administração da web. |
| O cabeçalho não permite que um domínio inclua a página de administração da web como um iframe. |
| Um cabeçalho de proteção que protege a página de administração da web contra ataques de scripts entre sites ao higienizar as entradas quando um ataque é detectado. |
| Garante que o tipo de conteúdo recebido pelo servidor é o mesmo que o solicitado por ele. |
| Garante que a administração da web só possa ser acessada por meio de HTTPS. |