About nixCraft

Howto: Linux Lighttpd SSL (secure server layer) https configuration and installation

Posted by Vivek Gite [Last updated: April 2, 2008]

Lighttpd logo

SSL is cryptographic protocol, which provides secure communications on the Internet for email, web etc.

An SSL certificate is a digital certificate that authenticates the identity of a Web site and encrypts information that is sent to the server using Secure Sockets Layer (SSL) technology. Encryption is the process of scrambling data into an undecipherable format that can only be returned to a readable format with the proper decryption key.

SSL is good if you run ecommerce site or accept payments via CC. It is a good choice to use SSL for user login or registration pages etc.

To purchase a digital certificate, you must first generate and submit a Certificate Signing Request (CSR) to the Certification Authority (CA). The CSR contains your certificate-application information, including your public key. The CSR is generated (using openssl command) with your web server software, which will also create your public/private key pair used for encrypting and decrypting secure transactions.

Requirements

Important files on your server

Important files issued by CA

Usually a zip file contains following files

Following are steps to configure SSL under Lighttpd web server.

Step # 1: Generate a certificate signing request (CSR)

First, generate a certificate-signing request using openssl command for your domain theos.in:
# mkdir -p /etc/lighttpd/ssl/theos.in
# cd /etc/lighttpd/ssl/theos.in

Create a RSA key:
# openssl genrsa -des3 -out theos.in.key 1024

Now create a CSR:
# openssl req -new -key theos.in.key -out theos.in.csr

You will be promoted to enter your domain name and other information. Please note that if you are requesting a wild card certificate, prefix an asterisk (*) symbol i.e. *.theos.in. This will secure all subdomains. If you just use theos.in, it will only secure theos.in domain and note www.theos.in.

Now, you need to submit your theos.in.csr file to CA while ordering your certificate. Next, you need to verify your domain ownership. Once your request is approved, you can download the certificate to use with Lighttpd webserver.

Step # 2: Prepare certificate

Your CA will issue you signed Web Server Certificate. The final step in the certificate request process is the installation of the certificate on your Lighttpd Web server.

Now copy downloaded certificate (theos.in.crt) to /etc/lighttpd/ssl/theos.in
# cp theos.in.crt /etc/lighttpd/ssl/theos.in

Now create your final pem file and setup permission:
# cat theos.in.key theos.in.crt > theos.in.pem
# chmod 0600 theos.in.pem
# chown lighttpd:lighttpd /etc/lighttpd/ssl/theos.in -R

Step #3: Make sure Lighttpd support SSL

Use following command to verify that Lighttpd support SSL:
[vivek@example.org]$ /usr/sbin/lighttpd -v
lighttpd-1.4.11 (ssl) - a light and fast webserver
Build-Date: Jul 12 2006 13:47:40

Otherwise, follow these instructions to build Lighttpd with SSL support.

Step #4: Configure Lighttpd SSL support for your domain

Now open your lighttpd configuration file
# vi /etc/lighttpd/lighttpd.conf

Add config section:
$SERVER["socket"] == "theos.in:443" {
ssl.engine = "enable"
ssl.pemfile = "/etc/lighttpd/theos.in/theos.in.pem"
ssl.ca-file = "/etc/lighttpd/theos.in/CA_issuing.crt"
server.name = "theos.in"
server.document-root = "/home/lighttpd/theos.in/https"
server.errorlog = "/var/log/lighttpd/theos.in/serror.log"
accesslog.filename = "/var/log/lighttpd/theos.in/saccess.log"
}

Where,

Save and close the file. Restart lighttpd webserver (please note that it will prompt you for SSL private key password):
# /etc/init.d/lighttpd restart

Output:

Password:

Open a web browser and type url https://yourdomain.com (https://theos.in) to test SSL installation.

Further readings

Want to stay up to date with the latest Linux tips, news and announcements? Subscribe to our free e-mail newsletter or RSS feed to get all updates. You can Email this page to a friend.

You may also be interested in other helpful articles:

Discussion on This Article:

  1. jack Says:

    Hai!

    Just wanted to say ‘thank you’ for excellent set of information.

  2. Joe Says:

    Good tutorials on doing some lighttpd tasks that would usually require a significant amount of reading.

    Simple, straight forward…keep it up!

  3. 2. Shalat, 3. Puasa, 4. Zakat » Blog Archive » Membuat secure web server dengan Lighttpd + PHP + SSL Says:

    [...] konfigurasi SSL seperti yang dicontohkan disini, disini dan disini, langkah-langkahnya adalah [...]

  4. sidh Says:

    How to create theos.in.crt? can somebody please write down the syntax.

  5. vivek Says:

    This file issued by CA for a small amount of feed. If you don’t need CA crt generate your own self signed SSL certificates

  6. Adrian Says:

    Nice howto, thanks! Only problem is lighttpd wont start on boot because it needs the pass phrase. I’ve written a little bit about that here if anyone is interested.

  7. Maski Says:

    When I restart Lighty, it always asks me for the phrase,.. Enter PEM pass phrase:

  8. vivek Says:

    Backup the original key and recreate the key based off the original one without a password.

    openssl rsa -in theos.in.key -out new.your.key
    cat new.your.key ssl.crt > ssl.pem

Leave a Reply

We encourage your comments, and suggestions. But please stay on topic, be polite, and avoid spam. Thank you very much for stopping by our site!

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

*
To prove you're a person (not a spam script), type the security word shown in the picture. Click on the picture to hear an audio file of the word.
Click to hear an audio file of the anti-spam word

Tags: , , , , , , , , , , , , , , , , , , ,

Would you like to...

more ~/options

Archives

nixCraft RSS Feeds

   Add to Google

   Add to My Yahoo!

Copyright © 2004-2008 nixCraft. All rights reserved - TOS/Disclaimer - Privacy policy - Sitemap - Powered by Open source software.