Cara install Let’s Encrypt, solusi SSL Gratis

Ketika masa awal saya terjun ke dunia perwebhostingan, layanan SSL (Secure Socket Layer) atau biasa juga dikenal dengan “https” adalah sesuatu yang berbayar. Sekarang bagaimana? masih bayar? ya… sama saja masih bayar kok 😀 , tapi tenang… sekarang ini, sudah ada solusi ssl gratisan. Nah, gimana cara dapetin ssl gratis kaya gitu? jawabannya adalah dengan menggunakan Let’s Encrypt!

cara install lets encrypt, solusi ssl gratis

Let’s Encyrpt adalah sebuah non-profit certificate authority yang dijalankan oleh Internet Security Research Group (ISRG) . Ingin tahu Lebih panjang dan lebar tentang Let’s Encrypt bisa cek di wikipedia nya https://en.wikipedia.org/wiki/Let’s_Encrypt . Website resmi Let’s Encrypt bisa dikunjungi melalui url https://letsencrypt.org/ .

Ok, sekarang bagaimana cara mengkonfigurasi, mendapatkan dan memasang SSL gratis dari Let’s Encrypt ini ke domain yang kita miliki? sebelum memulai konfigurasi, disini saya asumsikan:

  1. Disini saya mengkonfigurasi pada server saya sendiri berupa vps atau bisa juga server pribadi lainnya, bukan shared hosting. Jika berminat menyewa vps, bisa coba ditempat saya menyewa vps, klik disini
  2. Sistem operasi yang berjalan pada server adalah Ubuntu
  3. Saya asumsikan bahwa pembaca sudah mengerti sedikit atau lebihnya penggunaan command line di linux.

Mari kita mulai konfigurasi nya.

Pertama, silakan login ke server. Jika sudah berhasil login jalankan perintah :

# sudo apt-get update
# sudo apt-get install letsencrypt

Setelah instalasi Let’s Encrypt selesai, saat nya untuk melakukan permintaan ssl certificate dari Let’s Encrypt tersebut, caranya :

# letsencrypt --webroot -w /var/www/ndgblog.com/ -d ndgblog.com certonly

pada bagian “/var/www/ndgblog.com/” silakan disesuaikan dengan path dimana document root website berada. Lalu pada bagian “ndgblog.com” silakan diganti dengan nama domain sesuai kebutuhan. Sebelum melakukan permintaan ssl certificate ini, pastikan bahwa domain sudah resolve/mengarah ke server dimana Let’s Encrypt terinstall. Jika proses request baru dilakukan pertama kali, akan ada semacam term condition yang harus disetujui dan permintaan alamat email yang akan digunakan untuk menerima informasi kapan ssl akan expired dan lainnya, silakan diisi dengan alamat email yang valid dan ketik “yes” untuk menyetujui setiap pertanyaannya.

Jika proses request ssl certificate berhasil, maka akan muncul informasi kurang lebih seperti ini:

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at
   /etc/letsencrypt/live/ndgblog.com/fullchain.pem. Your cert will
   expire on 20XX-YY-ZZ. To obtain a new version of the certificate in
   the future, simply run Let's Encrypt again.
 - 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

File certificate dan key berada pada folder “/etc/letsencrypt/live/namadomain.xxx/” . Dan untuk nama dari file certificate nya sendiri biasanya adalah “fullchain.pem” dan private key nya adalah “privkey.pem” . Nah, sekarang ssl gratisan dari Let’s Encyrpt sudah berhasil didapatkan, selanjutnya tinggal pasang pada webserver sehingga domain bisa diakses via https .

Pada artikel ini, saya akan memasang ssl tersebut pada Nginx . Caranya yaitu silakan buat virtual hosts terlebih dahulu, atau jika sudah ada tinggal edit saja. Berikut contoh virtual host nginx ssl

server {
    listen 443 ssl;
    listen [::]:443;
    root /var/www/ndgblog.com/;
    index  index.php index.html index.htm;
    server_name  ndgblog.com www.ndgblog.com;
    error_log /var/log/nginx/error.log;

    ssl_certificate /etc/letsencrypt/live/ndgblog.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/ndgblog.com/privkey.pem;
    ssl_session_cache shared:SSL:10m;
    ssl_session_timeout 10m;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers "ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!MD5:!DSS:!AES256";
    ssl_prefer_server_ciphers on;

Jika sudah, silakan restart nginx nya, dan…. taraaaaa…. domain sudah bisa diakses via https.

Hal yang perlu diketahui, bahwa layanan ssl Let’s Encrypt ini akan expired setiap 3 bulan, nah… untuk mengakali supaya ssl otomatis renewal, disini kita coba buat conjob. Contoh cronjob bisa seperti ini:

30 2 * * 1 /usr/bin/letsencrypt renew >> /var/log/le-renew.log
35 2 * * 1 /bin/systemctl reload nginx

Cronjob tersebut akan berjalan setiap hari Senin pukul 02:30 dan melakukan pengecekan apakah ada Certificate yang mendekati expired atau tidak, jika ada Certificate yang mendekati masa expired (30 hari sebelum expired) maka akan dilakukan proses renewal, kemudian jam 02:35 akan dilakukan reload nginx supaya Certificate terbaru bisa dikenali oleh Nginx. Silakan disesuaikan untuk proses renewal ini, mungkin ada cara yang lebih elegan.

O ya, jika ada dari pembaca yang hostingnya menggunakan cPanel, saat ini sudah tersedia fitur Auto SSL, jadi domain akan otomatis terinstall ssl gratis dan auto renew. Silakan dimanfaatkan fitur tersebut.

Domain ndgblog.com ini juga menggunakan Let’s Encrypt lho… maklum jika ada yang gratis tapi legal kenapa harus bayar? 😛

Sekian, selamat mencoba dan semoga bermanfaat.

Leave a Reply

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

This site uses Akismet to reduce spam. Learn how your comment data is processed.