Dialogflow CX 网络钩子需要 HTTPS 端点,这些端点在通过 Google 的默认受信任证书存储区进行验证时会提供有效的 TLS 证书。不过,您可能想要使用自定义 CA 证书,这些证书无法由 Google 的默认受信任证书存储区认可的证书授权机构签名。例如,位于 Google 的专用 VPC 网络内的网络钩子服务器就存在此问题。在这种情况下,您可以在创建网络钩子时将自定义证书上传到 Dialogflow CX,上传的证书将替换 Google 的默认受信任证书存储区。
自定义 CA 证书可以是自签名证书,也可以是自定义根证书。如果您想要轮替证书,可以上传多个证书。证书必须采用
DER 格式
,并且必须使用与网络钩子网址匹配的
正文备用名称
进行签名。如果存在
keyUsage
扩展程序,其值需要为 digitalSignature。
演示自签名服务器
以下是演示服务器的配置:
- 准备自签名证书文件。我们使用 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
- 使用上一步中创建的服务器证书 (
server.crt) 和私钥 (server.key) 启动 HTTPS 服务器。我们假定服务器侦听的是端口 443。 -
进行测试以在本地连接到服务器。
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 服务。