对话式 AI 助理 (Dialogflow CX) Webhook 进行验证时,需要 HTTPS 端点提供有效的 TLS 证书。不过,您可能需要使用自定义 CA 证书,且无法由 Google 的默认受信任证书存储区。例如,Google Cloud 中 Google 的专用 VPC 网络存在此问题。在这种情况下,您可以在创建 webhook 时将自定义证书上传到对话式客服 (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
使用自定义证书的演示网络钩子
使用自定义证书设置服务器后,您可以按照以下额外说明创建 webhook 资源,以使用自定义证书:
- 设置与使用证书签名的网域匹配的网址(在上一演示中,该网址为
https://www.example.com
)。确保您的网域能正确解析为服务器的 IP 地址,这是您的责任。 - 上传 DER 格式的自定义证书。这是上一个自签名演示中的
server.der
文件或自定义根证书。 - 对于与 Service Directory 专用网络访问集成的网络钩子,请使用服务器的 IP 地址和端口设置 Service Directory 端点,并在创建网络钩子时提供 Service Directory 服务。