Certificados de CA personalizados

Os webhooks de agentes de conversação (Dialogflow CX) exigem endpoints HTTPS que apresentam certificados TLS válidos quando são verificados usando o armazenamento de confiança padrão do Google. No entanto, você pode usar certificados de CA personalizados, que não podem ser assinados por uma autoridade de certificação reconhecida pelo armazenamento de confiança padrão do Google. Por exemplo, os servidores webhook que estão dentro da rede VPC privada do Google têm esse problema. Nesse caso, você pode fazer upload do certificados personalizados para agentes de conversa (Dialogflow CX) ao criar webhooks e os substituirão o repositório confiável padrão do Google.

Os certificados de CA personalizados podem ser certificados autoassinados ou certificados raiz personalizados. É possível fazer upload de vários certificados, caso você queira alterná-los. Os certificados precisam estar no formato DER e serem assinados com o nome alternativo do assunto correspondente ao URL do webhook. Quando a extensão keyUsage estiver presente, o valor dela precisa ser digitalSignature.

Servidor autoassinado de demonstração

Veja a seguir a configuração de um servidor de demonstração:

  1. Prepare arquivos de certificado autoassinados. Usamos www.exemplo.com como o domínio de exemplo.
    openssl genrsa -out server.key 2048
    openssl req -nodes -new -sha256 -newkey rsa:2048 -key server.key -subj "/CN=www.example.com" -out server.csr
    openssl x509 -req -days 3650 -sha256 -in server.csr -signkey server.key -out server.crt -extfile <(printf "\nsubjectAltName='DNS:www.example.com'")
    openssl x509 -in server.crt -out server.der -outform DER
  2. Inicie o servidor HTTPS usando o certificado de servidor (server.crt) e a chave privada (server.key) criadas na etapa anterior. Presumimos que o servidor esteja escutando na porta 443.
  3. Faça um teste para se conectar localmente ao servidor.
    curl --cacert server.crt https://www.example.com --resolve www.example.com:443:127.0.0.1

Webhook de demonstração com certificado personalizado

Depois de configurar o servidor com o certificado personalizado, crie um recurso webhook com as seguintes instruções extras para usar o certificado personalizado:

  • Defina o URL correspondente ao domínio assinado com o certificado (https://www.example.com na demonstração anterior). É sua responsabilidade garantir que o domínio será resolvido corretamente para o endereço IP do servidor.
  • Faça upload do certificado personalizado no formato DER. Este é o arquivo server.der da demonstração autoassinado anterior ou o certificado raiz personalizado.
  • Para webhooks integrados ao acesso à rede particular do Diretório de serviços, configure o Endpoint do Diretório de serviços com o endereço IP e a porta do servidor e forneça o Serviço do Diretório de serviços ao criar o webhook.