Yeah, I know, let's encrypt, but its validity is only 90 days; you have to renew it after 90 days, and you need domain validation, which is a hassle to do, compared to a paid one, which offers a one-year validity.
And letsencrypt does not offer 24/7 support, so if there's an issue, you need to fix it yourself.
Between the pros and cons of using a free one and a paid one, I prefer a paid one.
Here I use Caddy to host all my projects and configure their access with my domain. They do Let's Encrypto for you and it's so freaking easy that it's like SSL just comes by default, I haven't spent 1 minute thinking about this for years.
Install Caddy -> create a Caddy file with my subdomain and the IP:port to point to -> Run Caddy -> That's literally it.
It even auto renews it for me. Beieve me, there is no need to pay anything.
