<p>I use <code>cert-manager</code> to generate TLS certificates for my application on Kubernetes with Let's Encrypt.</p>

<p>It is running and I can see "ca.crt", "tls.crt" and "tsl.key" inside the container of my application (in <code>/etc/letsencrypt/</code>). </p>

<p>But "ca.crt" is empty, and the application complains about it (<code>Error: Unable to load CA certificates. Check cafile "/etc/letsencrypt/ca.crt"</code>). The two other files look like normal certificates.</p>

<p>What does that mean?</p>

<p>With cert-manager you have to use the <code>nginx-ingress</code> controller which will work as expose point.</p>

<p>ingress nginx controller will create one load balancer and you can setup your application tls certificate there.</p>

<p>There is nothing regarding certificate inside the pod of cert-manager.</p>

<p>so setup nginx ingress with cert-manager that will help to manage the tls certificate. that certificate will be stored in kubernetes secret.</p>

<p>Please follow this guide for more details:</p>

<blockquote>
  <p><a href="https://www.digitalocean.com/community/tutorials/how-to-set-up-an-nginx-ingress-with-cert-manager-on-digitalocean-kubernetes" rel="nofollow noreferrer">https://www.digitalocean.com/community/tutorials/how-to-set-up-an-nginx-ingress-with-cert-manager-on-digitalocean-kubernetes</a></p>
</blockquote>
