nginx - 在 nginx Ingress 中使用自签名证书

标签 nginx ssl kubernetes nginx-ingress client-certificates

我正在将服务迁移到 minikube 上的 kubernetes 集群中,这些服务需要在加载时使用自签名证书,通过 NodePort 访问服务非常完美,并且需要浏览器中的证书(下图),但通过入口访问主机(域在/etc/hosts 中本地修改)为我提供了 Acme 的 Kubernetes Ingress Controller 假证书,并跳过我的自签名证书,没有任何消息。

SSL 应该在应用程序内部而不是在 Ingress 中解密,并且 tls-acme: "false"标志不起作用并且仍然给我假证书

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: ingress
  annotations:
    kubernetes.io/ingress.class: nginx
    nginx.ingress.kubernetes.io/backend-protocol: "HTTPS"
    # decryption of tls occurs in the backend service
    nginx.ingress.kubernetes.io/ssl-passthrough: "true"
    nginx.ingress.kubernetes.io/tls-acme: "false"
spec:
  rules:
    - host: admin.domain.com
      http:
        paths:
          - path: /
            pathType: Prefix
            backend:
              service:
                name: admin-service
                port:
                  number: 443

登录时加载前应显示以下内容: Normal behaviour

minikube 版本:v1.15.1

kubectl 版本:1.19

使用 ingress-nginx 3.18.0

最佳答案

问题原来是Minikube上的一个bug,也不得不enable ssl passthrough在带有标志 --enable-ssl-passthrough=true 的 nginx Controller 中(除了注释之外)。

我在 Minikube 集群版本 v1.15.1 和 kubernetes v1.19.4 上进行了所有集群测试,其中 ssl 直通失败,并遵循了 ingress-nginx GitHub issue 中的指导。 ,我发现问题并没有重复出现,所以我尝试将我的应用程序部署到一个新的 AWS 集群(k8 版本 1.18)上,一切都运行良好。

关于nginx - 在 nginx Ingress 中使用自签名证书,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65523064/

相关文章:

docker - docker 中的 ASP.net 核心 gRPC 服务回复错误的 ssl 证书

docker - 是否可以将公共(public) docker 镜像存储在私有(private) docker 注册表中

kubernetes - 如何使用 kubernetes java 客户端获取所有 Kubernetes Deployment 对象?

nginx - 如何在 nginx 中启用 CORS

php - nginx - laravel - hhvm-Fastcgi 得到错误 500

python - 在 django 应用程序中保存静态文件的位置,如何从 nginx 的多个位置提供静态文件

nginx - 负载均衡 nginx 代理中的共享缓存内容

php - Laravel 5 SSL - 使用过时的密码学加密

asp.net - 禁用 TLS 1.0 会破坏 ASP.NET 应用程序

windows - 如何检索 Windows 容器的内存使用情况?