Certificados de CA personalizados

Los webhooks de Dialogflow requieren extremos HTTPS que presenten certificados TLS válidos cuando se verifican mediante el almacén de confianza predeterminado de Google. Sin embargo, es posible que desees usar certificados de CA personalizados, que no pueden estar firmados por una autoridad certificadora reconocida por el almacén de confianza predeterminado de Google. Por ejemplo, los servidores de webhook que están dentro de la red de VPC privada de Google tienen este problema. En este caso, puedes subir los certificados personalizados a Dialogflow cuando crees webhooks, y los certificados subidos anularán el almacén de confianza predeterminado de Google.

Los certificados de CA personalizados pueden ser certificados autofirmados o certificados raíz personalizados. Puedes subir varios certificados en caso de que desees rotar los certificados. Los certificados deben estar en formato DER y deben estar firmados con un nombre alternativo de entidad que coincida con la URL del webhook. Cuando la extensión keyUsage está presente, su valor debe ser digitalSignature.

Servidor autofirmado de demostración

A continuación, se muestra la configuración de un servidor de demostración:

  1. Prepara los archivos de certificado autofirmados. Usamos www.example.com como dominio de ejemplo.
    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. Inicia tu servidor HTTPS con el certificado de servidor (server.crt) y la clave privada (server.key) que se creó en el paso anterior. Suponemos que el servidor está escuchando en el puerto 443.
  3. Prueba para conectarte al servidor de manera local.
    curl --cacert server.crt https://www.example.com --resolve www.example.com:443:127.0.0.1

Webhook de demostración con certificado personalizado

Después de configurar el servidor con tu certificado personalizado, puedes crear un recurso de webhook con las siguientes instrucciones adicionales para usarlo:

  • Configura la URL que coincide con el dominio firmado con el certificado (https://www.example.com en la demostración anterior). Es tu propia responsabilidad asegurarte de que tu dominio se resuelva de forma correcta en la dirección IP del servidor.
  • Sube el certificado personalizado en formato DER. Este es el archivo server.der de la demostración autofirmada anterior o el certificado raíz personalizado.
  • Para webhooks integrados en el acceso a la red privada del Directorio de servicios, configura tu extremo del directorio de servicios con la dirección IP y el puerto de tu servidor y proporciona el servicio del Directorio de servicios cuando crees el webhook.