logo
  • Home
  • Pemrograman
    • Website
      • PHP
      • MySQL
      • Ajax
      • CSS
      • JavaScript
      • HTML
    • Framework
      • Laravel
      • Lumen
      • Yii2
  • Sistem Operasi
    • Linux
    • Android
    • Windows
  • Kehidupan
    • Cinta
    • Ga Jelas
  • Home
  • Pemrograman
    • Website
      • PHP
      • MySQL
      • Ajax
      • CSS
      • JavaScript
      • HTML
    • Framework
      • Laravel
      • Lumen
      • Yii2
  • Sistem Operasi
    • Linux
    • Android
    • Windows
  • Kehidupan
    • Cinta
    • Ga Jelas

SSL Gratis dari Let’s Encrypt!

09 Sep 2016 by Nasrul Hadi 1 Comments

Halo SysAdmin,

Kabar gembira buat para sysadmin! kini registrasi SSL semudah ngetik poweroff di terminal, cepat & gratis pula #ehh. Mungkin saya yg telat tau informasi ini atau bisa jadi saya yg kurang “jauh mainnya” :D. Let’s Encrypt adalah suatu organisasi public yg tidak hanya menyediakan Free SSL alias SSL Gratis, tp juga tools client untuk generate file certificate (.pem) nya loh!

Bagi yg belum paham apa itu SSL, apa fungsi SSL dan kenapa diharuskan menggunakan SSL bisa langsung cek ke Wikipedia tentang Pengertian SSL. Saya tidak akan membahas itu, karena sudah terlalu antusias sama yg gratisan #nah.

Pengalaman pertama saat install Let’s Encrypt, generate key hingga pasang SSL ke website, hampir tidak menemukan kesulitan, dokumentasinya pun sangat mudah dipahami, entah karena VPS saya kebetulan pake OS (linux for human being) dan web server yg familiar jadinya lancar jaya! 😀

Ok, mari kita mulai, ada beberapa hal yg perlu disiapkan :

  1. berdoa, semoga dilancarkan segala usahanya, amin..
  2. pengetahuan kontrol linux yg baik, minimal bisa/ada akses sudo, cukup!
  3. koneksi internet yg stabil
  4. status server sudah ip public, baik vps, dedicated atau co-location

Pertama, (diasumsikan sudah masuk pada terminal & remote ssh) install certbot, certbot sendiri adalah salah satu key generator client yg direkomendasikan oleh Let’s Encrypt karena penggunaanya sangat mudah, sy sendiri memakai ini.

Buka website certbot, kemudian pilih Web Server kemudian Operating System, setelah itu muncul perintah untuk install certbot. Kebetulan contoh kali ini menggunakan Linux Ubuntu, dan web server Nginx, mungkin ada perbedaan cara install tergantung pilihan.

Masuk ke home folder (untuk menyimpan file certbot)

cd /home/nasrul

Download file certbot-auto dan set menjadi execute file

wget https://dl.eff.org/certbot-auto
chmod a+x certbot-auto

Kemudian, install

./certbot-auto

Jika install berhasil & masih di direktori yg sama, generate key SSL nya dan sesuaikan namadomain.com dengan nama domain yg ingin diregistrasikan, kalau ingin tambah subdomain gunakan -d <namadomain.com> , jangan lupa mematikan service web server dulu sebelum generate (wajib!).

./certbot-auto certonly --standalone -d namadomain.com -d www.namadomain.com

Jika generate berhasil, file key akan tersimpan di folder /etc/letsencrypt/live/<namadomain.com>/  di dalam folder tersebut, tersimpan 4 file certificate key yg berekstensi *.pem, diantaranya:

  • privatekey.pem (private key untuk semua certificate)
  • cert.pem (certificate untuk server ) –> untuk Apache < 2.4.8 di bagian SSLCertificateFile.
  • chain.pem (certificate untuk browser) –> untuk Apache < 2.4.8 di bagian SSLCertificateChainFile, dan Nginx >= 1.3.7 di bagian ssl_trusted_certificate.
  • fullchain.pem (gabungan cert.pem dan chain.pem) –> untuk Apache < 2.4.8 di bagian SSLCertificateFile, dan Nginx >= 1.3.7 di bagian ssl_certificate.

Dari file dan keterangan diatas, tinggal ditambahkan konfigurasi pada file nginx.conf (default nya ada di /etec/nginx/conf.d)

ssl on;
ssl_certificate         /etc/letsencrypt/live/<namadomain.com>/fullchain.pem;
ssl_certificate_key     /etc/letsencrypt/live/<namadomain.com>/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/<namadomain.com>/chain.pem;
ssl_protocols           SSLv3 TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers             HIGH:!aNULL:!MD5;

Jangan lupa tambahkan listen 443 (port ssl)

listen 443 ssl;

(optional) tambahkan fungsi untuk redirect ke https seperti pada artikel sebelumnya Otomatis Http ke Https:

if ($scheme = http) {
       return 301 https://$server_name$request_uri;
}

Dan, untuk versi lengkapnya file nginx.conf saya seperti ini

server {
        listen 80;
        listen 443 ssl;

        root /web/<namadomain>/frontend/web;
        index index.html index.htm index.php;

        server_name www.namadomain.com namadomain.com;
        
        client_max_body_size 128M;
	charset utf-8;
	
	fastcgi_buffers 16 16k;
	fastcgi_buffer_size 32k;

        ssl on;
        ssl_certificate         /etc/letsencrypt/live/<namadomain.com>/fullchain.pem;
        ssl_certificate_key     /etc/letsencrypt/live/<namadomain.com>/privkey.pem;
        ssl_trusted_certificate /etc/letsencrypt/live/<namadomain.com>/chain.pem;
        ssl_protocols           SSLv3 TLSv1 TLSv1.1 TLSv1.2;
        ssl_ciphers             HIGH:!aNULL:!MD5;
        
        location / {
                try_files $uri $uri/ /index.php?$args;
        }

        error_page 404 /404.html;
        error_page 500 502 503 504 /50x.html;
        
        location = /50x.html {
                root /web;
        }

        location ~ \.php$ {
                try_files $uri =404;
                fastcgi_split_path_info ^(.+\.php)(/.+)$;
                fastcgi_pass unix:/var/run/php5-fpm.sock;
                fastcgi_index index.php;
                include fastcgi_params;
        }

        if ($scheme = http) {
                return 301 https://$server_name$request_uri;
        }
}

Jika sudah selesai semua, restart service web server dan kemudian akses website melalui browser favorite, taraaaa!! https://namadomain.com.

File certificate itu sendiri masa nya hanya 90 hari, jika ingin memperpanjang tinggal jalankan perintah (masih di folder home yg sama, letak file certbot-auto berada) :

./certbot-auto renew --quiet --no-self-upgrade

Kalau tidak ingin repot setiap ketik-ketik perintah update tersebut, bisa dijalankan melalui CRON atau SYSTEMD setiap hari sekali, tenang kalau tidak ada file certificate yg perlu diupdate perintah tersebut akan diabaikan, jadi tidak akan memberatkan server. Semoga bermanfaat!

~ Sekian

Categories : Laravel, Linux, Lumen, Operating System, Tutorial, Ubuntu, Windows, Yii2
Tags : console, free ssl, linux, server, ssl, ssl gratis, ssl murah, terminal, tutorial, ubuntu
Nasrul Hadi

Sudah menikah, dan sekarang jadi bapak rumah tangga. Contact: nasrul[at]arekmedia.com

Related Post

Cara cepat “Save All” di Sublime Text 3

Cara cepat “Save All” di Sublime Text 3

06 May 2020
Password default modem Huawei HG8245A Indihome terbaru 2020

Password default modem Huawei HG8245A Indihome terbaru 2020

04 May 2020
Percayakan Server dan Domain Kamu pada Ahlinya

Percayakan Server dan Domain Kamu pada Ahlinya

30 Apr 2020

1 thought on “SSL Gratis dari Let’s Encrypt!”

  1. Muhamad Husein
    said on 29 September 2016

    keren banget artikelnya. sangat bermanfaat sekali ini buat saya yang lagi cari ssl gratisan 😀

    Reply

Leave a Reply Cancel reply

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

Recent Posts

latestwid-img

Cara cepat “Save All” di Sublime Text 3

6 May 2020
latestwid-img

Password default modem Huawei HG8245A Indihome terbaru 2020

4 May 2020
latestwid-img

Percayakan Server dan Domain Kamu pada Ahlinya

30 April 2020
latestwid-img

Cara menghubungkan folder sharing Windows 10 dengan VLC di Android TV

23 April 2020
latestwid-img

Modem Indihome Kena Hack!

15 May 2017

Recent Comments

  • mahasiswacode on Kirim Email Di Lumen 5.2 Menggunakan Mandrill
  • Firman on Modem Indihome Kena Hack!
  • anil on Modem Indihome Kena Hack!
  • philtyphils on Kirim Email Di Lumen 5.2 Menggunakan Mandrill
  • Muhamad Husein on SSL Gratis dari Let’s Encrypt!

Archives

  • May 2020
  • April 2020
  • May 2017
  • September 2016
  • April 2016
  • October 2015
  • May 2015
  • April 2015
  • December 2014
  • November 2014
  • October 2012
  • March 2012
  • July 2011
  • June 2011
  • May 2011
Dibuat untuk memberi manfaat ❤