openssl giving Kubernetes Ingress Controller Fake Certificate

10/30/2020

I have configured ssl certificate, if I visit https://<domain>.com, I see that my certificate is configured successfully but when I try to check certificate by following command

openssl s_client -connect <domain>.com:443 | openssl x509 -noout -subject -issuer

i am getting Kubernetes Ingress Controller Fake Certificate

My ingres config is :

  annotations:
    nginx.ingress.kubernetes.io/ssl-redirect: 'true'
    nginx.ingress.kubernetes.io/from-to-www-redirect: 'true'
  name: nginx-echo
spec:
  tls:
    - hosts:
      - domain.com
      secretName: domain.com
  rules:
    - host: domain.com
      http:
        paths:
        - path: /
          pathType: Prefix
          backend:
            service:
                name: website-lorem
                port:
                    number: 80

with command gives the same fake certificate: openssl s_client -connect <domain>.com:443 -servername <domain> | openssl x509 -noout -subject -issuer

Logs:

 6 flags.go:205] Watching for Ingress class: nginx
W1029 22:02:36.331841       6 flags.go:210] Ingresses with an empty class will also be processed by this Ingress controllernginx
W1029 22:02:36.332409       6 flags.go:252] SSL certificate chain completion is disabled (--enable-ssl-chain-completion=false)
W1029 22:02:36.332525       6 client_config.go:552] Neither --kubeconfig nor --master was specified.  Using the inClusterConfig.  This might not work.
I1029 22:02:36.332855       6 main.go:231] Creating API client for https://<ip>:443
I1029 22:02:36.342532       6 main.go:275] Running in Kubernetes cluster version v1.19 (v1.19.2) - git (clean) commit f57430*** - platform linux/amd64
I1029 22:02:36.470142       6 main.go:105] SSL fake certificate created /etc/ingress-controller/ssl/default-fake-certificate.pem
I1029 22:02:36.472357       6 main.go:113] Enabling new Ingress features available since Kubernetes v1.18
W1029 22:02:36.476751       6 main.go:125] No IngressClass resource with name nginx found. Only annotation will be used.
I1029 22:02:36.485119       6 ssl.go:528] loading tls certificate from certificate path /usr/local/certificates/cert and key path /usr/local/certificates/key
I1029 22:02:36.544518       6 nginx.go:263] Starting NGINX Ingress controller
-- user8462556
kubernetes
kubernetes-ingress
opengl
ssl

1 Answer

10/31/2020

Problem was that

  1. --default-ssl-certificate flag was not set. More details can be found here
  2. Intermediate certificate was not set. Please check this thread for more details.

Now its working.

There is also a Github thread with this issue.

-- user8462556
Source: StackOverflow