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 die benutzerdefinierten Zertifikate beim Erstellen von Webhooks in Conversational Agents (Dialogflow CX) hochladen. Die hochgeladenen Zertifikate überschreiben den Standard-Trust Store von Google.
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:
- 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
- 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. -
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 eine Webhook-Ressource mit den folgenden zusätzlichen Anleitungen zur Verwendung des benutzerdefinierten Zertifikats erstellen:
- 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 den privaten Netzwerkzugriff von Service Directory eingebunden sind, richten Sie Ihren Service Directory-Endpunkt mit der IP-Adresse und dem Port Ihres Servers ein und geben beim Erstellen des Webhooks den Service Directory-Dienst an.