自定义 CA 证书

对话式 AI 助理 (Dialogflow CX) Webhook 进行验证时,需要 HTTPS 端点提供有效的 TLS 证书。不过,您可能需要使用自定义 CA 证书,且无法由 Google 的默认受信任证书存储区。例如,Google Cloud 中 Google 的专用 VPC 网络存在此问题。在这种情况下,您可以在创建 webhook 时将自定义证书上传到对话式客服 (Dialogflow CX),上传的证书将替换 Google 的默认信任库。

自定义 CA 证书可以是自签名证书或自定义根证书。您可以上传多个证书,以备轮替证书。证书必须位于 DER 格式 并且必须使用 主题备用名称 与网络钩子网址匹配当 keyUsage 扩展名,则其值必须为 digitalSignature

演示自签名服务器

以下是演示服务器的配置:

  1. 准备自签名证书文件。我们使用 www.example.com 作为示例网域。
    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. 使用上一步中创建的服务器证书 (server.crt) 和私钥 (server.key) 启动 HTTPS 服务器。我们假定服务器侦听的是端口 443。
  3. 进行测试以在本地连接到服务器。
    curl --cacert server.crt https://www.example.com --resolve www.example.com:443:127.0.0.1

使用自定义证书的演示网络钩子

使用自定义证书设置服务器后,您可以按照以下额外说明创建 webhook 资源,以使用自定义证书:

  • 设置与使用证书签名的网域匹配的网址(在上一演示中,该网址为 https://www.example.com)。确保您的网域能正确解析为服务器的 IP 地址,这是您的责任。
  • 上传 DER 格式的自定义证书。这是上一个自签名演示中的 server.der 文件或自定义根证书。
  • 对于与 Service Directory 专用网络访问集成的网络钩子,请使用服务器的 IP 地址和端口设置 Service Directory 端点,并在创建网络钩子时提供 Service Directory 服务