自定义 CA 证书

使用集合让一切井井有条 根据您的偏好保存内容并对其进行分类。

Dialogflow 网络钩子需要 HTTPS 端点,并且 HTTPS 证书使用 Google 的默认信任库进行验证。不过,您可能需要使用自定义 CA 证书,这些证书不能由 Google 默认信任存储区所识别的证书授权机构签名。例如,Google 专用 VPC 网络内的网络钩子服务器就存在此问题。在这种情况下,您可以在创建 webhook 时将自定义证书上传到 Dialoglow,而上传的证书将覆盖 Google 的默认信任库。

自定义 CA 证书可以是自签名证书,也可以是自定义根证书。如果要轮替证书,您可以上传多个证书。证书必须采用 DER 格式,并且必须使用与网络钩子网址匹配的主题备用名称进行签名。

演示自签名服务器

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

  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

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

使用自定义证书设置服务器后,您可以额外创建一个网络钩子资源,并额外提供一些有关如何使用该自定义证书的说明:

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