<p>I set up a kubernetes cluster in AWS using KOPS; now I want to set up an NGINX ingress controller and terminate TLS with AWS managed certificate. The topology in my understanding is AWS ELB is facing the internet and terminates TLS, forwards unencrypted to ingress service which then does dispatches.</p>

<p>I've deployed ingress controller from <a href="https://github.com/kubernetes/ingress/tree/master/examples/aws/nginx" rel="noreferrer">https://github.com/kubernetes/ingress/tree/master/examples/aws/nginx</a></p>

<p>Except I used annotations as described on top of <a href="https://github.com/kubernetes/ingress/issues/71" rel="noreferrer">https://github.com/kubernetes/ingress/issues/71</a> to add the certificate.</p>

<p>I add the route to Route53 and open my browser to https address and get a 400 response from NGINX with message "The plain HTTP request was sent to HTTPS port"</p>

<p>What am I doing wrong?</p>

<p>This is my ingress resource:</p>

<pre><code>apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  annotations:
    kubernetes.io/ingress.class: nginx
  name: dispatcher
  namespace: test
spec:
  rules:
  - host: REDACTED
    http:
      paths:
      - backend:
          serviceName: REDACTED
          servicePort: 80
        path: /api/v0
</code></pre>

<p>I managed to get this done largely using the ingress here: <a href="https://github.com/kubernetes/kops/tree/master/addons/ingress-nginx" rel="nofollow noreferrer">https://github.com/kubernetes/kops/tree/master/addons/ingress-nginx</a> except for the ingress service I added <code>service.beta.kubernetes.io/aws-load-balancer-ssl-cert</code> annotation pointing to my certificate ARN and set <code>targetPort</code> of both the ports to 80</p>
