Instal SSL Letsencrypt
Apakah SSL Letsencrypt itu?
SSL singkatan dari Secure Socket Layer, adalah sebuah protokol kriptografi untuk keperluan keamanan komunikasi antar jaringan, termasuk internet. Protokol SSL akan mengenkripsi jalur komunikasi yang dibentuk antara client dan server. Dengan penggunaan SSL, akan sangat banyak mengurangi masalah yang berkaitan dengan ancaman keamanan yang terjadi di jalur komunikasi, karena yang semula plain-text, akan dienkripsi.
Masalah-masalah itu antara lain
- Man in the middle attack
- Data intercepting
- Sniffing
Instalasi SSL Letsencrypt / LE cukup mudah. Di sini akan dipaparkan cara instalasi dengan menggunakan OS Linux Ubuntu.
Adapun langkah-langkahnya adalah :
- Instalasi Certbot (LE generator) pada host sistem kampus anda
- Request SSL dengan certbot
- Memasang kunci pada konfigurasi webserver
Instalasi Certbot pada OS Ubuntu
Proses instalasi certbot pada Ubuntu cukup mudah. Yaitu dengan menggunakan apt repository. Pertama kali dilakukan adalah menambahkan Repository Certbot:
sudo add-apt-repository ppa:certbot/certbot sudo apt update sudo apt install python-certbot-apache
Ya. Sudah terinstal. Tentu jika tidak ada error. Untuk testing, cek dengan :
which certbot
Seharusnya jawabnya adalah :
/usr/bin/certbot
Request SSL Key
Syarat utama request Letsencrypt SSL Key adalah : Pointing DNS domain terletak pada IP Address server tersebut. Prinsip kerja certbot request adalah :
- certbot akan meminta ke letsencrypt untuk diberikan key atas nama domain, misal : ssl.ecampuz.net
- letsencrypt akan melakukan verifikasi domain dan IP Address
- Verifikasi dengan verifikasi IP (perlu mematikan webserver)
- Verifikasi dengan meletakkan file di webserver.
- Jika selesai, akan diberikan empat key + 1 README:
fullchain.pem privkey.pem cert.pem chain.pem
Memasang Letsencrypt SSL Key di Webserver
Untuk memasang Letsencrypt SSL pada webserver Apache, yang perlu dilakukan adalah meletakkan SSL Key ini pada konfigurasi VirtualHost domain.
< VirtualHost *:443 > ServerAdmin admin@ecampuz.com DocumentRoot /home/ssltest/public_html ServerName ssl.ecampuz.com ErrorLog logs/ssl.ecampuz.com-error_log CustomLog logs/ssl.ecampuz.com-access_log common SSLEngine on SSLProtocol all -SSLv2 -SSLv3 SSLCipherSuite DEFAULT:!EXP:!SSLv2:!DES:!IDEA:!SEED:+3DES SSLCertificateFile /etc/letsencrypt/live/ssl.ecampuz.com/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/ssl.ecampuz.com/privkey.pem SSLCertificateChainFile /etc/letsencrypt/live/ssl.ecampuz.com/chain.pem < Directory /home/ssltest/public_html > Options -Indexes FollowSymLinks MultiViews AllowOverride All Order allow,deny allow from all </Directory > </VirtualHost >
Sedangkan contoh untuk webserver jenis Nginx (baca engine-x / enjin-ex) dapat diisi sebagai berikut :
server { listen 443 ssl; ssl_certificate /etc/letsencrypt/live/ssl.ecampuz.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/ssl.ecampuz.com/privkey.pem; access_log /var/log/nginx/ssl.ecampuz.com_access_log; error_log /var/log/nginx/ssl.ecampuz.com_error_log; server_name ssl.ecampuz.com; ssl_session_cache shared:SSL:50m; ssl_stapling on; ssl_stapling_verify on; location / { root /usr/share/nginx/html } }
Tentu setelah proses pemasangan SSL Letsencrypt ini, webserver haruslah direstart/direload.
Re-New SSL
sudo certbot renew
Perbaiki satu alamat
certbot certonly --standalone --preferred-challenges http -d paksamsul.smkn1pogalan.sch.id -d www.paksamsul.smkn1pogalan.sch.id
Untuk update lebih dari satu domain bisa menggunakan :
certbot certonly --force-renew -d example.com
Keterangan : Bendera tersebut --force-renew memberi tahu Certbot untuk meminta sertifikat baru dengan domain yang sama dengan sertifikat yang sudah ada. -d Bendera tersebut memungkinkan Anda memperbarui sertifikat untuk beberapa domain tertentu.
Untuk memverifikasi bahwa sertifikat diperbarui, jalankan:
sudo certbot renew --dry-run
Testing
Ada beberapa cara testing untuk memastikan bahwa SSL Letsencrypt telah sukses diinstal.
Dengan menggunakan curl (command line) contoh perintah : curl -I https://ssl.ecampuz.com Apakah dengan perintah ini akan menghasilkan error, atau HTTP 200 OK?
Dengan menggunakan situs luar untuk test, misal ssllabs.com
Tanya Jawab
Q : Apakah SSL Letsencrypt harus diinstall berbasis domain tertentu?
A : Iya. Registrasi adalah atas nama domain. Maka harus menggunakan domain, bukan IP. Sebuah web dengan valid SSL, tidak bisa dipanggil dengan https://ip_address. Meskipun ada juga produk SSL yang nanti dapat multidomain.
Q : Apakah setelah dipasang SSL / HTTPS, aman dari hacking?
A : Tidak. Justru bagi para hacker, hacking yang aman adalah hacking via HTTPS. Lho mengapa? Karena dengan via HTTPS, sebagian besar transport data akan lolos dari mesin-mesin firewall/NGAF/NGFW/WAF di provider. Firewall itu punya tugas, salah satunya mendeteksi adanya traffic serangan. Tentu dari hasil inspeksi traffic. Nah jika traffic itu dikenai enkripsi, tentu firewall akan gagal membaca. Jika dia diset paksa untuk tetap bisa membaca, itu namanya pelanggaran. Salah satu cara agar firewall tetap bisa membaca secara legal, kunci SSL tersebut perlu diberikan juga di firewall. Dengan demikian firewall tetap dapat melakukan inspeksi data HTTPS secara legal. Sayangnya tidak semua administrator sistem melakukan ini.
3 Langkah Cara Instal SSL Letsencrypt
Q : Lho kalau begitu nggak usah pasang SSL dong??
A : Lho, ya tidak.. Instalasi SSL hal yang hampir wajib, bahkan sudah diwarning keras oleh mayor browser. Ini karena keamanan data di internet sangat-sangat rawan oleh intersep data. Ibarat perjalanan, dari rumah menuju kantor, SSL hanya mengamankan perjalanan, tapi bukan mengamankan rumah atau kantor. Tanpa SSL, bagaimana transfer data API antar bank coba, ngeri kan jika diintersep penjahat. Tentang pengamanan rumah atau kantor, urusan lain lagi. Jadi jangan lagi ada anggapan bahwa “Setelah dipasang SSL, server jadi aman. No”.
Q : Terus mengamankan server bagaimana?
A : Suatu ketika akan dibahas ya 🙂
Q : Kabarnya ada juga ya provider melakukan intersep data?
A : Iya, buktinya ada. Coba googling dengan keyword : “netbro_cache_analytics”, atau “notifa.info”. Beberapa vendor seluler dan juga provider internet yang besar di negeri ini melakukan intersep data. Hal yang dilakukan operator tersebut sebenarnya pelanggaran. Data tersebut diintersep, kompresi gzip dibuka, si provider menginjeksi script, kemudian data itu diberikan pada user dalam kondisi tidak dikompresi gzip lagi. Ini menguntungkan operator, dia bisa menginjeksi iklan, statistik, dan quota user yang lekas habis.
Q : Bisa nggak SSL itu dijebol?
A : Technically, karena enkripsi SSL itu adalah enkripsi dua arah yang harus bisa didekrip (bukan hashing), maka bisa saja terjadi ada penjebolan security SSL. Contoh yang pernah terjadi adalah kisah Heartbleed dan Poddle Attack. Oleh karena itu, diharapkan selalu update security pada program OpenSSL atau SSL handler lainnya.
Q : Bisakah SSL Letsencrypt dipasang pada selain HTTPS?
A : Woo, bisa sekali.. Untuk lain protokol juga bisa.
Q : Lantas ngomong-ngomong, Letsencrypt untung dari mana ya?
A : Dia hidup dari donasi, silakan saja dibuka halaman website Letsencrypt. Di bagian bawah terlihat siapa saja sponsor dan supportingnya.
Q : Jika saya sudah punya SSL Sendiri bagaimana?
A : Pasanglah SSL commercial yang sudah ada. Letsencrypt adalah solusi alternatif. Jika memang masih low budget, open source project, dan devel condition, yang merasa sayang untuk membeli commercial SSL, dapat menggunakan SSL Letsencrypt. Kondisi live dan berdana pun tidak bermasalah juga menggunakan Letsencrypt. Cuma jika pakai Letsencrypt, tidak akan muncul branding nama di SSL Common Name nya.
Q : Bisa nggak sih SSL Letsencrypt diregistrasi atas nama Wilcard Domain?
A : Bisa. SIlakan cari di tutorial-tutorial, sudah banyak yang memanfaatkannya.
Q : Satu lagi bung, apa bedanya SSL dan TLS ?
A : Sebenarnya kunci SSL sendiri sudah obsolete, SSL versi 1 hingga 3 sudah terpantau bermasalah, sekarang disarankan menggunakan TLS (Transport Layer Security) . SSL Letsencrypt juga sudah memberikan solusi akan hal itu. Nah, mau coba SSL Letsencrypt untuk portal kampus anda?