自訂 CA 憑證

Conversational Agents (Dialogflow CX) 網路鉤子需要 HTTPS 端點,且使用 Google 的預設信任存放區驗證時,必須提供有效的 TLS 憑證。不過,您可能想使用自訂 CA 憑證,這類憑證無法由 Google 預設信任儲存庫認可的憑證授權單位簽署。舉例來說,位於 Google 私人虛擬私有雲網路內的 Webhook 伺服器就會發生這個問題。在這種情況下,建立 Webhook 時,您可以將自訂憑證上傳至 Conversational Agents (Dialogflow CX),上傳的憑證會覆寫 Google 的預設信任存放區。

自訂 CA 憑證可以是自行簽署的憑證,也可以是自訂根憑證。如要輪替憑證,可以上傳多個憑證。憑證必須採用 DER 格式,且簽署時使用的主體替代名稱須與 Webhook 網址相符。如有 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

使用自訂憑證設定伺服器後,您可以建立 Webhook 資源,並按照下列額外操作說明使用自訂憑證:

  • 設定與以憑證簽署的網域相符的網址 (上一個範例中的 https://www.example.com)。您有責任確保網域會正確解析為伺服器的 IP 位址。
  • 以 DER 格式上傳自訂憑證。這是先前自行簽署的範例或自訂根憑證中的 server.der 檔案。
  • 如要使用整合 Service Directory 私人網路存取權的 Webhook,請使用伺服器的 IP 位址和連接埠設定服務目錄端點,並在建立 Webhook 時提供服務目錄服務