Dialogflow 웹훅에는 Google의 기본 트러스트 저장소를 사용하여 인증할 때 유효한 TLS 인증서를 제공하는 HTTPS 엔드포인트가 필요합니다. 하지만 Google의 기본 신뢰 저장소에서 인식하는 인증 기관이 서명할 수 없는 커스텀 CA 인증서를 사용해야 하는 경우도 있습니다. 예를 들어 Google의 비공개 VPC 네트워크 내에 있는 웹훅 서버에 이러한 문제가 있습니다. 이 경우 웹훅을 만들 때 커스텀 인증서를 Dialogfow에 업로드할 수 있으며 업로드된 인증서가 Google의 기본 신뢰 저장소를 재정의합니다.
맞춤 CA 인증서는 자체 서명 인증서 또는 맞춤 루트 인증서일 수 있습니다. 인증서를 순환하려는 경우 여러 인증서를 업로드할 수 있습니다. 인증서는 DER 형식이어야 하며 웹훅 URL과 일치하는 주체 대체 제목으로 서명되어야 합니다. 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
맞춤 인증서가 있는 데모 웹훅
커스텀 인증서로 서버를 설정한 후에 다음 추가 안내에 따라 웹훅 리소스를 만들어 커스텀 인증서를 사용할 수 있습니다.
- 인증서로 서명된 도메인과 일치하는 URL(이전 데모의
https://www.example.com
)을 설정합니다. 도메인이 서버의 IP 주소로 올바르게 확인되도록 할 책임은 사용자에게 있습니다. - DER 형식으로 커스텀 인증서를 업로드합니다. 이전 자체 서명 데모의
server.der
파일 또는 맞춤 루트 인증서입니다. - 서비스 디렉터리 비공개 네트워크 액세스와 통합된 웹훅의 경우 서버의 IP 주소 및 포트로 서비스 디렉터리 엔드포인트를 설정하고 웹훅을 만들 때 서비스 디렉터리 서비스를 제공해야 합니다.