Как включить взаимный TLS в Google Dialogflow

Согласно документации Google на странице https://cloud.google.com/dialogflow/docs/fulfillment-mtls, взаимный TLS - это дополнительный способ аутентификации.

Я пытался настроить это с помощью сервера nginx в качестве конечной точки выполнения, однако не похоже, что Dialogflow действительно отправляет сертификат с запросом. Если я сделаю запрос к серверу nginx с помощью curl, используя некоторые сертификаты letsencrypt, он будет работать по назначению, и запрос будет передан на мою конечную точку API.

server {
listen 80;
listen [::]:80;
server_name *.mysite.com;
return 301 https://$host$request_uri;
}
server {
listen 443 default_server ssl;
server_name _;
ssl_certificate /etc/letsencrypt/live/mysite/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/mysite/privkey.pem;
}
server {
listen 443 ssl;
server_name mysubdomain.mysite;
ssl_protocols TLSv1.2;
ssl_client_certificate /home/user/cacert.pem;
ssl_verify_client on;
ssl_verify_depth 10;
ssl_certificate /etc/letsencrypt/live/mysite.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/mysite.com/privkey.pem;
location / {
  proxy_pass https://myapi/;
}
}

Нужно ли где-то включить эту функцию, чтобы попытаться установить TLS-соединение? У кого-нибудь это работает?


person Dave Grix    schedule 02.04.2020    source источник


Ответы (1)


Оказывается, пакет Mozilla из здесь не работает нормально. Использование только Google исправило это для меня

curl https://pki.goog/gsr2/GTS1O1.crt | openssl x509 -inform der >> ca-crt.pem
curl https://pki.goog/gsr2/GSR2.crt | openssl x509 -inform der >> ca-crt.pem
person Dave Grix    schedule 02.04.2020