Konfigurasi SSL pada Lighttpd di Debian 10

SSL

Halo semua, pada tulisan ini saya akan berbagi pengalaman tentang melakukan konfigurasi SSL secara mudah pada Lighttpd di Debian 10. Tutorial ini berawal iseng-iseng mengaktifkan ulang akun AWS Education yang sudah expired, saya kira setelah expired akun tidak bisa lagi dan ternyata bisa diaktifkan lagi. Ya lumayanlah, dapat 100 credit atau $100 selama setahun dan saya kira cukup untuk iseng-iseng dengan VPS walau dengan kapasitas penyimpanan 30Gb dan RAM 1Gb.

Mengenal SSL

Setelah memasang webserver, saatnya berkenalan dengan SSL. Mungkin Anda sudah tahu apa itu SSL? karena SSL ini sudah tidak begitu asing di dunia maya dan merupakan salah satu bagian terpenting dalam keamanan sebuah website. Ciri-ciri yang paling umum dan mudah dikenali bahwa sebuah website sudah memakai SSL adalah terdapat HTTPS (HyperText Transfer Protocol Secure) pada awal alamat sebuah website. Namun tujuan utama dari SSL pada website merupakan sebuah pengaman dalam pertukaran data yang terjadi dalam internet.

Cara kerja dari SSL adalah mengkombinasikan antara public key yang berfungsi untuk mengenkripsi data yang dikirim dan private key untuk melakukan mendekripsi data yang dikirim.

Setup Awal

Lighttpd_logo

Untuk VPS, saya menggunakan Debian 10. Sedangkan untuk web server saya memilih Lighttpd atau sering dibaca lighty. Saya memilih Lighttpd karena konsumsi resource RAM dan CPU yang lebih rendah dan cocok dengan spesifikasi VPS yang saya miliki. Jadi, untuk semua perintah dalam tulisan ini akan lebih berfokus pada Debian based saja, untuk instalasi Lighttpd cukup menjalankan perintah:

sudo apt install lighttpd

Setelah coba jalankan service Lighttpd dengan perintah:

systemctl enable lighttpd

Sekarang buka web browser kesayangan Anda dan arahkan ke alamat IP server Anda. Nanti akan tampil seperti berikut:

Memasang SSL

Setelah Lighttpd terpasang, langkah selanjutnya adalah membuat file CSR atau Certificate Signing Request. File CSR ini berisi detail tentang domain dan public key. Berikut langkah-langkah membuat file CSR:

mkdir -p /etc/lighttpd/ssl/
cd /etc/lighttpd/ssl/
openssl req -new -newkey rsa:2048 -nodes -keyout namadomainanda.com.key -out namadomainanda.com.csr

Saat menjalankan perintah openssl req -new -newkey rsa:2048 -nodes -keyout example.com.key -out example.com.csr akan menanyakan beberapa informasi Anda, seperti kode negara, provinsi, kota, nama organisasi, nama unit organisasi, nama hostname dan email. Atau Anda bisa meniru settingan berikut:

Generating a 2048 bit RSA private key
....+++
...............+++
writing new private key to 'namadomainanda.com.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [XX]:ID
State or Province Name (full name) []:East Java
Locality Name (eg, city) [Default City]:Bojonegoro
Organization Name (eg, company) [Default Company Ltd]:Boxer
Organizational Unit Name (eg, section) []:web
Common Name (eg, your name or your server's hostname) []:vps01
Email Address []:vps01@boxer.or.id

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []: [Bisa tidak diisi]
An optional company name []: [Bisa tidak diisi]

Langkah kedua adalah membuat file sertifikasi keamanan pada penyedia SSL seperti Cloudflare, Letsencrypt dan sebagainya tetapi dalam hal ini saya menggunakan metode self-signed certificate dalam membuat file sertifikasi keamanan. Metode ini sangat tidak dianjurkan untuk production, saya memilih metode karena saya tidak punya domain yang nganggur dan domain dari AWS dianggap spam oleh beberapa penyedia SSL. Untuk membuat file sertifikasi keamanan cukup jalankan perintah:

openssl x509 -req -days 365 -in namadomainanda.com.csr -signkey namadomainanda.com.key -out namadomainanda.com.crt
cat namadomainanda.com.key  namadomainanda.com.crt > namadomainanda.com.pem

Pada baris perintah kedua, Anda akan membuat file baru dengan nama namadomainanda.com.pem yang berisi namadomainanda.com.key dan namadomainanda.com.crt.

Dan langkah terakhir, mengubah file konfigurasi lighttpd dengan perintah:

sudo nano /etc/lighttpd/lighttpd.conf

Lalu, tambahkan konfigurasi berikut:

$SERVER["socket"] == ":443" {
  ssl.engine = "enable" 
  ssl.pemfile = "/etc/lighttpd/ssl/namadomainanda.com.pem" 
}

Cek file yang diubah apakah sudah sesuai atau belum dengan perintah:

lighttpd -t -f /etc/lighttpd/lighttpd.conf

Apabila ada error, Anda akan melihat apa yang salah atau kurang pada file konfigurasi lighttpd. Dan bila tidak ada error, silahkan Anda reatart service lighttpd dengan perintah:

service lighttpd restart

Dan tara, SSL sudah terpasang. Coba anda akses webserver Anda dengan https, maka akan tampil seperti berikut:

Sebelum memasang SSL

sebelum-ssl

Sesudah memasang SSL

Sedikit ada perbedaan bukan? walau cara ini kurang direkomendasikan. Terima kasih sudah membaca, sampai jumpa di artikel lainnya.

Referensi tulisan:

Simple SSL
Apa itu SSL?
Self-signed certificate
SSL Pict

Share This Post

Leave a Comment

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