Nginx 反向代理 SSL 过期的网站并部署在 Kubernetes 上
背景
遇到第三方 API 的 SSL 证书过期了,直接访问会报证书错误。可以用 Nginx 反向代理来绕过这个问题。
Nginx 配置
在 values.yaml 里添加自定义的 server 配置:
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;
}
}
部署
helm repo add bitnami https://charts.bitnami.com/bitnami
helm install my-nginx bitnami/nginx -f values.yaml
测试
直接访问 HTTPS(会失败):
# 会报证书错误
curl https://api.foobar.com/endpoint
通过 Nginx 代理访问(成功):
# 通过代理访问
curl http://my-nginx:8080/endpoint
如果想直接用 curl 忽略证书验证:
# -k 参数忽略 SSL 证书
curl -k https://api.foobar.com/endpoint
# 或者使用 --insecure
curl --insecure https://api.foobar.com/endpoint
注意
- 关闭 SSL 验证有安全风险,仅适合内网环境
- 生产环境还是建议让对方更新证书