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 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:

  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 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.