Install Let’s Encrypt SSL Certificate in Lighttpd

Prerequisites

Before we begin, make sure you have the following prerequisites in place:

  1. A running instance of Lighttpd on your server.
  2. A domain name associated with your server’s IP address.
  3. Shell access or SSH credentials to your server.

Now, let’s dive into the steps required to install a Let’s Encrypt certificate in Lighttpd:

Step 1: Install Certbot

Certbot is a command-line tool provided by Let’s Encrypt for obtaining and managing SSL certificates. We need to install Certbot on our server.

Step 2: Obtain SSL Certificate

Now that we have Certbot installed, we can proceed with obtaining the SSL certificate for your domain.

  • Stop the Lighttpd service:
$ sudo systemctl stop lighttpd
  • Run the following command to obtain the certificate:
$ sudo certbot certonly --standalone -d your-domain.com

Replace your-domain.com with your actual domain name. Make sure the command executes successfully, and the certificate files are generated.

  • Start the Lighttpd service:
$ sudo systemctl start lighttpd

Step 3: Configure Lighttpd for SSL

With the SSL certificate in place, we need to configure Lighttpd to utilize the certificate for secure connections.

  • Open the Lighttpd configuration file:
$ sudo nano /etc/lighttpd/lighttpd.conf
  • Add the following lines to the configuration file:
$SERVER["socket"] == ":443" {
    ssl.engine = "enable"
    ssl.pemfile = "/etc/letsencrypt/live/your-domain.com/fullchain.pem"
    ssl.privkey = "/etc/letsencrypt/live/your-domain.com/privkey.pem"
}

Replace your-domain.com with your actual domain name.

  • Save and exit the file.
  • Restart the Lighttpd service for the changes to take effect:
$ sudo systemctl restart lighttpd

Step 4: Automate Certificate Renewal

Let’s Encrypt SSL certificates have a validity period of 90 days. To ensure uninterrupted SSL protection, we should automate the certificate renewal process.

  • Open the crontab for editing:
$ sudo crontab -e
  • Add the following line at the end of the file:
0 0 * * * certbot renew --quiet

This instructs the system to automatically renew the certificates daily at midnight.

  • Save and exit the file.

Step 5: Test SSL Configuration

Now that everything is set up, it’s time to test our SSL configuration.

  • Open your web browser and enter your domain name with https:// prefix (e.g., https://your-domain.com).
  • If the SSL installation is successful, you should see a padlock icon or a similar indication of a secure connection in your browser’s address bar.

Congratulations! You have successfully installed a Let’s Encrypt SSL certificate in Lighttpd. Your website is now secured with encrypted communication.

5 thoughts on – Install Let’s Encrypt SSL Certificate in Lighttpd

    • To Force HTTPS redirect you can add this bloc.

      $SERVER["socket"] == ":80" {
      $HTTP["host"] =~ "(.*)" {
      url.redirect = ( "^/(.*)" => "https://%1/$1" )
      }
      }

    • There’s no supported way to install SSL certificate for multiple domains on lighttpd.
      For this you need to use another solution like Apache or nginx.

  • yes there is, I just did! simply add another $HTTP host, which is the second domain name, using a different port. Then you just need certbot to make a certificate for that 2nd domain. Finally, under the $SERVER socket 443 just add your second domain as another $HTTP host block

source: https://www.webhi.com/how-to/setup-lets-encrypt-ssl-certificate-in-lighttpd/

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *