Как включить взаимный TLS в Google Dialogflow - PullRequest
0 голосов
/ 02 апреля 2020

Согласно документации 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? Кто-нибудь получил это работает?

1 Ответ

0 голосов
/ 02 апреля 2020

Оказывается, что связка 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
...