<p>I'm working on a single-node cluster which works fine with docker-compose but the reconfiguration of the same setup using Minikube Ingress Controller gives me a <code>Bad Request</code> response.</p>
<pre><code>Bad Request

Your browser sent a request that this server could not understand.
Reason: You're speaking plain HTTP to an SSL-enabled server port.
Instead use the HTTPS scheme to access this URL, please.
</code></pre>
<p>My Ingress looks like this:</p>
<pre><code>apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: nginx-ingress-service
  annotations:
    kubernetes.io/ingress.class: nginx
    nginx.ingress.kubernetes.io/rewrite-target: /
    nginx.ingress.kubernetes.io/ssl-redirect: &quot;false&quot;
spec:
  rules:
    - http:
        paths:
          - path: /?(.*)
            pathType: Prefix
            backend:
              service:
                name: emr-cluster-ip-service
                port:
                  number: 443
          - path: /?(.*)
            pathType: Prefix
            backend:
              service:
                name: erp-cluster-ip-service
                port:
                  number: 8069
</code></pre>
<p>How to fix this?</p>

<p>You are exposing HTTPS service on HTTP ingress, which is not the right thing to do. You might want to do one of the following:</p>
<ol>
<li>Configure <a href="https://kubernetes.io/docs/concepts/services-networking/ingress/#tls" rel="nofollow noreferrer">TLS-enabled ingress</a>.</li>
<li>Configure <a href="https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/annotations/#ssl-passthrough" rel="nofollow noreferrer">TLS passthough</a> on ingress object.</li>
</ol>
<p>In both cases you also need to set <code>nginx.ingress.kubernetes.io/ssl-redirect: &quot;true&quot;</code></p>
