yupanzi

Nginx 反向代理 SSL 过期的网站并部署在 Kubernetes 上

· 1 分钟阅读

背景

遇到第三方 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 验证有安全风险,仅适合内网环境
  • 生产环境还是建议让对方更新证书

相关文章