Cloud House Technologies Logo
CloudHouse Technologies
HomeServicesProjectsBlogAbout UsCareersContact UsLogin
    Cloud House Technologies Logo
    CloudHouse Technologies
    HomeServicesProjectsBlogAbout UsCareersContact UsLogin

    How to install Free SSL using Let's Encrypt on Ubuntu 2026

    ABHILASH CA

    Junior Devops Engineer

    Last Updated: 15 June 2026
    How to install Free SSL using Let's Encrypt on Ubuntu 2026
    🖥️12,400+PCs Fixed
    ⭐4.9★Google Rating
    ⚡<15 minAvg. Response
    🛡️ISO 27001Certified

    This is a step-by-step guide to the Let's Encrypt SSL installation for Nginx on Ubuntu server. We will go through several applicable settings to make the configuration easier and smarter.

    Step 1 - Install LetsEncrypt

    Before installing new soft you should always consider updating the package list in order to have your software up to date.

    sudo apt-get update

    Add software repository Ubuntu

    sudo apt-get install software-properties-common
    sudo add-apt-repository ppa:certbot/certbot
    sudo apt-get update

    Installation

    For now, everything is ready to install LetsEncrypt on your server:

    This command will install the lets-encrypt dummy package that includes certbot and other utilities for SSL installation.

    sudo apt-get install lets-encrypt

    Step 2 - Configure NginX for Let's Encrypt SSL

    In my configuration examples, I will use the following domain name 'ssl.itsyndicate.org'. Do not forget to change it for your needs when you do a copy-paste. Now it's time for a small life hack that will show you how to optimize the process of adding new certificates to your server.

    We will use Nginx default config to catch all requests with a non-secure connection that are going to our server aka non-ssl which will target 80 port.

    server {
    listen 80 default_server;
    server_name _;
    location ~ /\.well-known/acme-challenge/ {
    allow all;
    root /var/www/letsencrypt;
    try_files $uri =404;
    break;
    }
    }

    As you can see we are using /.well-known/acme-challenge/ directory to catch all requests for location and /var/www/letsencrypt directory to host acme-challenges. So let's create a directory after you edited the default Nginx vhost config:

    sudo mkdir -p /var/www/letsencrypt

    Before applying changes to your Nginx settings always check the configuration file:

    sudo nginx -t

    You should get a notification that syntax is ok:

    nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
    nginx: configuration file /etc/nginx/nginx.conf test is successful

    To apply changes to our new Nginx vhost configuration that is designed to catch all of your Let's Encrypt certificates challenges do the following:

    sudo service Nginx reload

    Step 3 - Request new Let's Encrypt SSL

    Now it is time to request our first Let's Encrypt SSL certificate for our domain:

    sudo letsencrypt certonly -a webroot --webroot-path=/var/www/letsencrypt -m mail@example.com --agree-tos -d ssl.itsyndicate.org

    Now it is time to request our first Let's Encrypt SSL certificate for our domain:

    sudo letsencrypt certonly -a webroot --webroot-path=/var/www/letsencrypt -m mail@example.com --agree-tos -d ssl.itsyndicate.org

    Let me describe some important options in our command:

    --webroot-path=/var/www/letsencrypt This specifies the directory where validation files will be stored. Nginx is configured to serve this directory so that Let's Encrypt can verify domain ownership.

    -m mail@example.com This option sets the email address used for important notifications, such as expiry reminders and security alerts.

    --agree-tos This flag automatically accepts the Let's Encrypt Terms of Service, enabling a fully automated SSL certificate setup.

    -d ssl.itsyndicate.org This defines the domain name for which the SSL certificate will be issued.

    After command execution you should see Congratulations message:

    IMPORTANT NOTES:
    
    - If you lose your account credentials, you can recover through
    e-mails sent to mail@example.com.
    
    - Congratulations! Your certificate and chain have been saved at
    /etc/letsencrypt/live/ssl.itsyndicate.org/fullchain.pem. Your cert
    will expire on 2018-08-01. To obtain a new version of the
    certificate in the future, simply run Let's Encrypt again.
    
    - Your account credentials have been saved in your Let's Encrypt
    configuration directory at /etc/letsencrypt. You should make a
    secure backup of this folder now. This configuration directory will
    also contain certificates and private keys obtained by Let's
    Encrypt so making regular backups of this folder is ideal.
    
    - If you like Let's Encrypt, please consider supporting our work by:
    Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate
    Donating to EFF: https://eff.org/donate-le
    

    Step 4 - Configure Nginx vhost

    Now we have new SSL installed to '/etc/letsencrypt/live/ssl.itsyndicate.org/'. It's time to configure our Nginx vhost to serve https requests for the desired domain. Here is my example:

    server {
    server_name itsyndicate.org;
    listen 443 ssl;
    ssl on;
    ssl_certificate /etc/letsencrypt/live/ssl.itsyndicate.org/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/ssl.itsyndicate.org/privkey.pem;
    root /var/www/html/;
    index index.php index.html index.htm;
    location ~ /.well-known {
    root /var/www/letsencrypt;
    allow all;
    }
    }

    Let's test and reload our new NginX configuration:

    sudo nginx -t
    sudo service nginx reload

    Step 5 - Configure Let's Encrypt SSL auto-renewal

    Let's Encrypt issues certificates for 90 days. You have an opportunity to reinstall it manually when you got the email that your SSL expires soon, but I think there is a smart way to automate that. We will use daily cron on our Ubuntu server to renew our SSL certificate.

    I use file '/etc/cron.daily/letsencrypt' file to setup cron with the following content:
    
    #!/bin/bash
    /usr/bin/letsencrypt renew --renew-hook "/etc/init.d/nginx reload"

    Step 6 - Test SSL configuration

    When we are done with configuration it's time to take a cup of coffee and relax test our configuration. There are dozens of options to test SSL, but I will use two, the first one is curl:

    curl -vI [https://ssl.itsyndicate.org](https://ssl.itsyndicate.org)
    

    Server certificate:

    subject: CN=ssl.itsyndicate.org

    start date: May 3 15:44:12 2022 GMT

    expire date: Aug 1 15:44:12 2022 GMT

    subjectAltName: host "ssl.itsyndicate.org" matched cert's "ssl.itsyndicate.org"

    issuer: C=US; O=Let's Encrypt; CN=Let's Encrypt Authority X3

    SSL certificate verify ok.

    The second option is to open your site in Google Chrome and check SSL certificate in dev tool under security tab:

    Conclusion

    Now you know how to install Let's Encrypt SSL on Ubuntu server to secure your site. It is a very simple, useful, and cheap solution to protect your site and improve a bit your SEO rankings. If you have issues with installation or you want to save time - ask our technicians to maintain your server for you.

    Let’s EncryptNginx

    Get the Free Linux Server Admin Cheatsheet (PDF)

    Essential commands for server management, networking, and troubleshooting — all on one printable page.

    Running Linux servers? Let us manage them for you.

    Our Managed Linux Server plans cover updates, security hardening, monitoring, and 24/7 incident response — so your servers stay up and your team stays focused.

    • Proactive OS patching and security updates
    • 24×7 monitoring with instant alerting
    • Backup configuration and disaster recovery
    • Dedicated Linux engineers on call
    See Pricing Plans →

    What our customers say

    “Our production server went down at 2 AM. CloudHouse had it back online in under 20 minutes. Incredible response time.”

    Arun S.

    CTO, SaaS Startup

    “They migrated our entire infrastructure from Ubuntu 18 to 22 with zero downtime. Couldn't have asked for better.”

    Deepak N.

    DevOps Lead

    Frequently Asked Questions

    Yes — 90% of fixes are done over a secure remote session in 15–30 minutes. Our technicians connect safely using industry-standard tools.

    Book your free 15-minute diagnosis

    A certified technician will call you back within 15 minutes during business hours.

    Share this article

    Leave a Comment

    Comments (0)

    Loading comments...

    Still stuck?

    Free remote diagnosis by a certified engineer. 15 minutes. No credit card.

    Call Now — FreeWhatsApp Us

    Why CloudHouse?

    • ISO 27001:2022 certified
    • 12,400+ devices supported
    • 4.9★ on Google
    • Sub-15-minute response

    CloudHouse Technologies

    Innovative cloud solutions for modern businesses. We deliver cutting-edge technology with exceptional service.

    Contact Us

    CloudHouse Technologies Pvt.Ltd
    Special Economic Zone(SEZ),
    Infopark Thirissur,4B-15,
    Indeevaram,Nalukettu Road,
    Koratty, Kerala, India-680308
    0480-27327360
    info@cloudhousetechnologies.com

    Quick Links

    • Our Services
    • Gold Loan Software
    • About Us
    • Contact
    • Terms and Conditions
    • Privacy Policy
    ISO27001:2022
    Certified

    © 2026 CloudHouse Technologies Pvt.Ltd. All rights reserved.

    Back to top