Benutzerdefinierte CA-Zertifikate

Dialogflow-Webhooks erfordern HTTPS-Endpunkte und das HTTPS-Zertifikat wird mit dem Standard-Vertrauensspeicher von Google überprüft. Sie können jedoch auch benutzerdefinierte CA-Zertifikate verwenden, die nicht von einer Zertifizierungsstelle signiert werden können, die vom Standard-Vertrauensspeicher 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 Dialoglow hochladen. Die hochgeladenen Zertifikate überschreiben den Standard-Vertrauensspeicher 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.

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 -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. 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 (server.der in der vorherigen Demo) hoch.
  • 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.