<p>I just will describe how it configured on my side. I've installed <code>cert-manger</code> on my <code>Kubernetes</code> by using this tutorial :</p>

<p><a href="https://docs.cert-manager.io/en/latest/getting-started/install/kubernetes.html" rel="nofollow noreferrer">https://docs.cert-manager.io/en/latest/getting-started/install/kubernetes.html</a></p>

<p>I've checked is it installed and it is :</p>

<p><a href="https://i.stack.imgur.com/Wx8kd.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/Wx8kd.png" alt="enter image description here"></a></p>

<p>Also I have <code>ingress-resource</code> with the next config: </p>

<pre><code>apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  annotations:
    certmanager.k8s.io/acme-http01-edit-in-place: "true"
    certmanager.k8s.io/cluster-issuer: letsencrypt-issuer
    kubernetes.io/ingress.class: nginx
    nginx.ingress.kubernetes.io/from-to-www-redirect: "true"
    nginx.ingress.kubernetes.io/rewrite-target: /$1
  name: boonotes-ingress-resource
  namespace: default
spec:
  rules:
  - host: www.bnsfun.com
    http:
      paths:
      - backend:
          serviceName: booknotes-front-end-service
          servicePort: 80
        path: /?(.*)
  - host: www.bnsfun.com
    http:
      paths:
      - backend:
          serviceName: booknotes-back-end-service
          servicePort: 3000
        path: /api/?(.*)
  tls:
  - hosts:
    - www.bnsfun.com
    secretName: letsencrypt-certs
status:
  loadBalancer:
    ingress:
    - ip: some ip
</code></pre>

<p>Also, I've configured the certificate :</p>

<p><strong>kubectl describe certificate booknotes-certificate</strong></p>

<pre><code>Name:         booknotes-certificate
Namespace:    default
Labels:       &lt;none&gt;
Annotations:  kubectl.kubernetes.io/last-applied-configuration:
                {"apiVersion":"certmanager.k8s.io/v1alpha1","kind":"Certificate","metadata":{"annotations":{},"name":"booknotes-certificate","namespace":"...
API Version:  certmanager.k8s.io/v1alpha1
Kind:         Certificate
Metadata:
  Creation Timestamp:  2019-11-17T04:51:57Z
  Generation:          2
  Resource Version:    7257970
  Self Link:           /apis/certmanager.k8s.io/v1alpha1/namespaces/default/certificates/booknotes-certificate
  UID:                 fbe1d9c0-08f5-11ea-82b3-42010a80017a
Spec:
  Acme:
    Config:
      Domains:
        www.bnsfun.com
      http01:
        Ingress:  boonotes-ingress-resource
  Common Name:    www.bnsfun.com
  Dns Names:
    www.bnsfun.com
  Issuer Ref:
    Kind:       ClusterIssuer
    Name:       letsencrypt-issuer
  Secret Name:  letsencrypt-certs
Events:         &lt;none&gt;
</code></pre>

<p>I've also created a <code>secret</code>: </p>

<p><a href="https://i.stack.imgur.com/Hdisf.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/Hdisf.png" alt="enter image description here"></a></p>

<p>Here is my <code>sevice &amp; ingress</code> section: </p>

<p><a href="https://i.stack.imgur.com/JhVbD.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/JhVbD.png" alt="enter image description here"></a></p>

<p>I've used this tutorial to configure it :
<a href="https://medium.com/@betandr/kubernetes-ingress-with-tls-on-gke-744efd37e49e" rel="nofollow noreferrer">https://medium.com/@betandr/kubernetes-ingress-with-tls-on-gke-744efd37e49e</a></p>

<p>and official documentation of <code>cert-manager</code> to install cert managed. What do I wrong? How can I check why this doesn't work? I've tried a lot of stuff, but all doesn't work for me. For sure I do something wrong. But what? I've understood that I need <code>cert-manager</code> for updating my <code>lets-encrypt</code> certificate, also I need to create <code>secret</code> to store it, then I need configure my ingress in <code>tls</code> and <code>annotaions</code>. Pls could you help me to find out more what should happen there and what are the main steps to complete it? If you need more info , pls let me know</p>

<p>Here is my issuer: </p>

<pre><code>apiVersion: certmanager.k8s.io/v1alpha1
kind: ClusterIssuer
metadata:
  name: letsencrypt-issuer
spec:
  acme:
    email: email
    http01: {}
    privateKeySecretRef:
      name: letsencrypt
    server: "https://acme-v02.api.letsencrypt.org/directory"
</code></pre>

<p><a href="https://i.stack.imgur.com/Skjtx.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/Skjtx.png" alt="enter image description here"></a></p>

Andrey Radkevich
<p>let's take an another path, Letsencrypt official docs say that they won't be supporting any longer for below 0.8 versions, so I recommend you to install cert-manager provided by Jetstack, that you can find <a href="https://docs.cert-manager.io/en/latest/getting-started/install/kubernetes.html" rel="nofollow noreferrer">here</a>, to install the helm chart for it.</p>

<p>The follow <a href="https://stackoverflow.com/questions/58423312/how-do-i-test-a-clusterissuer-solver/58436097#58436097">this stackoverflow post</a>, for configurations, note that if the api version mentioned in that post doesn't support in case of cluster issuer, then rather use </p>

<pre><code>apiVersion: cert-manager.io/v1alpha2
</code></pre>

<p>Note that , the tls secret name mentioned in the certificate will be auto-generated by cert-manager, and it automatically starts an acme-challenge to validate the domain, once you patch that secret name to the TLS in your ingress rule.</p>

<p>It shall solve the issue and the certificate's status will change to ready after the domain verification</p>
