커스텀 CA 인증서

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

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

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

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

  • 인증서로 서명된 도메인과 일치하는 URL(이전 데모의 https://www.example.com)을 설정합니다. 도메인이 서버의 IP 주소로 올바르게 확인되도록 할 책임은 사용자에게 있습니다.
  • DER 형식으로 커스텀 인증서를 업로드합니다. 이전 자체 서명 데모 또는 커스텀 루트 인증서의 server.der 파일입니다.
  • 서비스 디렉터리 비공개 네트워크 액세스와 통합된 웹훅의 경우 서버의 IP 주소 및 포트로 서비스 디렉터리 엔드포인트를 설정하고 웹훅을 만들 때 서비스 디렉터리 서비스를 제공해야 합니다.