Certificados de CA personalizados

Los webhooks de Dialogflow requieren extremos HTTPS y el certificado HTTPS se verifica 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 Diálogo de baja cuando creas 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.

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 -key server.key -subj "/CN=www.example.com" -out server.csr
    openssl x509 -req -days 3650 -in server.csr -signkey server.key -out server.crt -extfile %3C(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 usar el certificado personalizado: