<p>I followed <a href="https://www.digitalocean.com/community/tutorials/how-to-set-up-an-nginx-ingress-with-cert-manager-on-digitalocean-kubernetes" rel="nofollow noreferrer">this tutorial</a> to serve a basic application using the NGINX Ingrss Controller, and cert-manager with letsencrypt.</p>
<p>I am able to visit the website, but the SSL certificate is broken, saying <code>Issued By: (STAGING) Artificial Apricot R3</code>.</p>
<p>This is my <code>ClusterIssuer</code>:</p>
<pre><code>apiVersion: cert-manager.io/v1alpha2
kind: ClusterIssuer
metadata:
  name: letsencrypt-issuer
  namespace: cert-manager
spec:
  acme:
    server: https://acme-staging-v02.api.letsencrypt.org/directory
    email: my-email@example.com
    privateKeySecretRef:
      name: letsencrypt-issuer
    solvers:
      - http01:
          ingress:
            class:  nginx
</code></pre>
<p>And the <code>Ingress</code>:</p>
<pre><code>apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: my-app-ingress-dev
  namespace: my-app
  annotations:
    cert-manager.io/cluster-issuer: letsencrypt-issuer
spec:
  tls:
    - secretName: echo-tls
      hosts:
        - my-app.example.com
  rules:
    - host: my-app.example.com
      http:
        paths:
          - path: /
            pathType: Prefix
            backend:
              service:
                name: my-app-dev
                port:
                  number: 80
</code></pre>

<p>LetsEncrypt staging is for testing, and does not issue certificates that are trusted by browsers. Use the production LE URL instead <code>https://acme-v02.api.letsencrypt.org/directory</code></p>
