커스텀 CA 인증서

Dialogflow 웹훅에는 HTTPS 엔드포인트가 필요하며 HTTPS 인증서는 Google의 기본 트러스트 저장소를 사용하여 확인됩니다. 하지만 Google의 기본 트러스트 저장소에서 인식하는 인증 기관에서 서명할 수 없는 커스텀 CA 인증서를 사용할 수 있습니다. 예를 들어 Google의 비공개 VPC 네트워크 내에 있는 웹훅 서버에 이 문제가 발생합니다. 이 경우 웹훅을 만들 때 커스텀 인증서를 Dialoglow에 업로드할 수 있으며 업로드된 인증서가 Google의 기본 트러스트 저장소를 재정의합니다.

커스텀 CA 인증서는 자체 서명 인증서 또는 커스텀 루트 인증서일 수 있습니다. 인증서를 순환하려는 경우 여러 인증서를 업로드할 수 있습니다. 인증서는 DER 형식이어야 하며 웹훅 URL과 일치하는 주체 대체 이름으로 서명되어야 합니다.

자체 서명된 서버 데모

다음은 데모 서버의 구성입니다.

  1. 자체 서명 인증서 파일을 준비합니다. 예시 도메인으로 www.example.com을 사용합니다.
    openssl genrsa -out server.key 2048
    openssl req -nodes -new -key server.key -subj "/CN=www.example.com" -out server.csr
    openssl x509 -req -days 3650 -in server.csr -signkey server.key -out server.crt -extfile %3C(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

커스텀 인증서가 있는 데모 웹훅

커스텀 인증서로 서버를 설정한 후에는 다음 추가 안내에 따라 웹훅 리소스를 만들어 커스텀 인증서를 활용할 수 있습니다.