如何在 Google Dialogflow 上启用双向 TLS

How to enable mutual TLS on Google Dialogflow

根据 https://cloud.google.com/dialogflow/docs/fulfillment-mtls 上的 google 文档,双向 TLS 是一种可选的身份验证方式。

我一直在尝试使用 nginx 服务器将其设置为我的 Fulfillment Endpoint,但是 Dialogflow 似乎并未实际发送带有请求的证书。如果我使用一些 letsencrypt 证书通过 curl 向 nginx 服务器发出请求,那么它会按预期工作并且请求被代理到我的 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 连接?有人成功了吗?

事实证明,来自 here 的 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