Benutzerdefinierte CA-Zertifikate

Für Webhooks von Conversational Agents (Dialogflow CX) sind HTTPS-Endpunkte erforderlich, die gültige TLS-Zertifikate vorweisen, wenn sie mit dem Standard-Trust Store von Google überprüft werden. Sie können jedoch auch benutzerdefinierte CA-Zertifikate verwenden, die nicht von einer Zertifizierungsstelle signiert werden können, die vom Standard-Trust Store von Google erkannt wird. Beispielsweise tritt dieses Problem bei Webhook-Servern auf, die sich im privaten VPC-Netzwerk von Google befinden. In diesem Fall können Sie das benutzerdefinierte Zertifikate für Konversations-Agents (Dialogflow CX) beim Erstellen von Webhooks und die hochgeladenen Zertifikate den Standard-Trust Store von Google überschreiben.

Benutzerdefinierte CA-Zertifikate können selbst signierte oder benutzerdefinierte Root-Zertifikate sein. Für den Fall, dass Sie die Zertifikate rotieren möchten, können Sie mehrere Zertifikate hochladen. Die Zertifikate müssen im DER-Format vorliegen und mit einem alternativen Antragstellernamen signiert werden, der der Webhook-URL entspricht. Wenn die Erweiterung keyUsage vorhanden ist, muss ihr Wert digitalSignature sein.

Selbst signierter Demoserver

Im Folgenden ist die Konfiguration eines Demoservers dargestellt:

  1. Bereiten Sie selbst signierte Zertifikatsdateien vor. Wir verwenden www.example.com als Beispieldomain.
    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. Starten Sie Ihren HTTPS-Server mit dem Serverzertifikat (server.crt) und dem privaten Schlüssel (server.key), die im vorherigen Schritt erstellt wurden. Wir gehen davon aus, dass der Server Port 443 überwacht.
  3. Testen Sie lokal eine Verbindung zum Server.
    curl --cacert server.crt https://www.example.com --resolve www.example.com:443:127.0.0.1

Demo-Webhook mit benutzerdefiniertem Zertifikat

Nachdem Sie den Server mit Ihrem benutzerdefinierten Zertifikat eingerichtet haben, können Sie Webhook-Ressource erstellen mit den folgenden zusätzlichen Anweisungen, um das benutzerdefinierte Zertifikat zu verwenden:

  • Legen Sie die URL fest, die mit der mit dem Zertifikat signierten Domain übereinstimmt (in der vorherigen Demo https://www.example.com). Sie müssen selbst dafür sorgen, dass Ihre Domain korrekt zur IP-Adresse des Servers aufgelöst wird.
  • Laden Sie das benutzerdefinierte Zertifikat im DER-Format hoch. Dies ist die Datei server.der aus der vorherigen Demo mit selbst signierten Zertifikaten oder das benutzerdefinierte Stammzertifikat.
  • Für Webhooks, die in Zugriff auf private Netzwerke auf Service Directory Richten Sie Ihr Service Directory-Endpunkt durch die IP-Adresse und den Port Ihres Servers Service Directory-Dienst wenn Sie einen Webhook erstellen.