Issue Let's Encrypt certificates for multiple websites Nginx

In this tutorial, you'll learn how to issue Let's Encrypt certificates for multiple websites using Nginx. Let's Encrypt is a free and open-source certificate authority that provides SSL/TLS certificates to encrypt your website's traffic. 

This guide covers the steps to install Certbot, configure Nginx for SSL, and automate the certificate renewal process. By following these instructions, you can ensure that all your websites are secure and up-to-date with the latest certificates.

Prerequisites

  • Ubuntu instance with a LEMP stack installed.
  • Two valid domain name. My example, devopsroles.com and huuphan.com
  • You have access shell login VPS.
  • You neeed install package certbot python3-certbot-nginx on your system.

Let's Encrypt Certificates and Nginx

Configure Certbot Let's Encrypt certificates for the first website

Let's Encrypt free SSL for website. you run command the following

certbot --nginx -d huuphan.com
you see the following output:

root@localhost:~# certbot --nginx -d huuphan.com
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator nginx, Installer nginx
Cert not yet due for renewal

You have an existing certificate that has exactly the same domains or certificate name you requested and isn't close to expiry.
(ref: /etc/letsencrypt/renewal/huuphan.com.conf)

What would you like to do?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: Attempt to reinstall this existing certificate
2: Renew & replace the certificate (may be subject to CA rate limits)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2
Renewing an existing certificate for huuphan.com
Deploying Certificate to VirtualHost /etc/nginx/conf.d/huuphan.com.conf
Redirecting all traffic on port 80 to ssl in /etc/nginx/conf.d/huuphan.com.conf

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Your existing certificate has been successfully renewed, and the new certificate
has been installed.

The new certificate covers the following domains: https://huuphan.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/huuphan.com/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/huuphan.com/privkey.pem
   Your certificate will expire on 2021-11-16. To obtain a new or
   tweaked version of this certificate in the future, simply run
   certbot again with the "certonly" option. To non-interactively
   renew *all* of your certificates, run "certbot renew"
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

Repeat the same process for other website devopsroles.com

You proceed to repeat the process for all your other websites. you can test your SSL certificates by visiting the URL https://www.ssllabs.com/ssltest/analyze.html

Automate Let's Encrypt Certificate Renewal

setup cron job

crontab -e
Add the following line:

10 11 * * *   root /usr/bin/certbot renew >/dev/null 2>&1
You can renew the certificates manually
certbot renew
Test certificate are being renewed correctly
certbot renew --dry-run

Conclusion

Using Let's Encrypt with Nginx to issue SSL certificates for multiple websites is a straightforward process that enhances your web security. By following the guide, you can configure Certbot to automate the issuance and renewal of certificates for all your domains, ensuring your websites remain secure without manual intervention. Automating the renewal process with cron jobs further simplifies maintenance, providing continuous protection for your online presence. thank you for reading the huuphan.com page!

Comments

Popular posts from this blog

zimbra some services are not running [Solve problem]

Bash script list all IP addresses connected to Server

How to install php7 on centos 6