背景

遇到第三方 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; # 关键:忽略 SSL 证书验证

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
# -k 参数忽略 SSL 证书
curl -k https://api.foobar.com/endpoint

# 或者使用 --insecure
curl --insecure https://api.foobar.com/endpoint

注意

  • 关闭 SSL 验证有安全风险,仅适合内网环境
  • 生产环境还是建议让对方更新证书