nginx - k8s 反向代理使用自签名证书 nginx 保护上游

标签 nginx kubernetes reverse-proxy kubernetes-ingress nginx-reverse-proxy

k8s 入口 Controller 不会将证书传递给上游 https 服务。

使用 nginx 我可以实现这样的目标

location /upstream {
    proxy_pass                https://backend.example.com;
    proxy_ssl_certificate     /etc/nginx/client.pem;
    proxy_ssl_certificate_key /etc/nginx/client.key;
}

我在这里错过了什么吗!我当前的配置看起来像这样。我不希望来自客户端的传递 ssl 将在此处终止。
  apiVersion: networking.k8s.io/v1beta1
  kind: Ingress
  metadata:
  name: backend
  namespace:  default
  annotations:
    kubernetes.io/ingress.class: nginx
    nginx.ingress.kubernetes.io/rewrite-target: "/$1"
    nginx.ingress.kubernetes.io/backend-protocol: HTTPS
    nginx.ingress.kubernetes.io/secure-backends: "true"
    nginx.ingress.kubernetes.io/proxy-ssl-secret: "proxy-ca-secret"
    nginx.ingress.kubernetes.io/proxy-ssl-name: "backend.example.com"
  spec:
    rules:
    - http:
        paths:
        - path: /(api/auth/.*)
          backend:
          serviceName: auth
          servicePort: 8080

日志显示
 SSL_do_handshake() failed (SSL: error:14094412:SSL routines:ssl3_read_bytes:sslv3 alert bad certificate:SSL alert number 42) while SSL handshaking to upstream

我用 openssl cert 验证了 base64 证书看起来很好。提前致谢!

最佳答案

就我而言,问题确实是日志所说的证书。文档不清楚!我必须使用 ca 为证书创建通用 secret ,因为我的证书是自签名的。

kubectl create secret generic proxy-ca-secret --from-file=tls.crt=client.crt --from-file=tls.key=client.key --from-file=ca.crt=ca.crt

它的错误是在 cert.pem 中有证书和链并作为 tls 导入
kubectl create secret tls proxy-ca-secret --key "client.key" --cert "client.pem"

关于nginx - k8s 反向代理使用自签名证书 nginx 保护上游,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62212993/

相关文章:

kubernetes - kubernetes-从calico迁移到法兰绒

kubernetes - 我可以在 kubernetes pod 中获取日志文件吗?

nginx proxyPass 使用变量传递给普罗米修斯

go - 无法连接到代理 "Certificate signed by unknown authority"

nginx - 顺序请求处理(CPU 密集型处理)

unicorn 的示例 nginx.conf 中不允许使用 nginx 指令

mysql - MacOS MySQL 消失以及 GateKeeper 导致的本地网络问题

caching - Varnish 如何知道将每个响应缓存多长时间?

nginx - 使用 Nginx 反向代理运行 Apache OpenMeetings?

NGINX:永久删除部分URL