背景
遇到第三方 API 的 SSL 证书过期了,直接访问会报证书错误。可以用 Nginx 反向代理来绕过这个问题。
Nginx 配置
在 values.yaml 里添加自定义的 server 配置:
1 2 3 4 5 6 7 8 9 10 11 12 13
| serverBlock: | server { listen 8080;
location / { proxy_pass https://api.foobar.com/; proxy_ssl_verify off;
proxy_set_header Host api.foobar.com; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-for $proxy_add_x_forwarded_for; } }
|
部署
1 2
| helm repo add bitnami https://charts.bitnami.com/bitnami helm install my-nginx bitnami/nginx -f values.yaml
|
测试
直接访问 HTTPS(会失败):
1 2
| curl https://api.foobar.com/endpoint
|
通过 Nginx 代理访问(成功):
1 2
| curl http://my-nginx:8080/endpoint
|
如果想直接用 curl 忽略证书验证:
1 2 3 4 5
| curl -k https://api.foobar.com/endpoint
curl --insecure https://api.foobar.com/endpoint
|
注意
- 关闭 SSL 验证有安全风险,仅适合内网环境
- 生产环境还是建议让对方更新证书