Cara Install Let’s Encrypt SSL (HTTPS) dengan Apache di CentOS 7

Cara Install Let’s Encrypt SSL (HTTPS) dengan Apache di CentOS 7

Sebelumnya saya sudah membahas tentang apa itu SSL, cara install HTTPS di localhost untuk kebutuhan development dengan menggunakan web server Apache dan Nginx. Kemudian beberapa teman-teman komunitas di Facebook bertanya bagaimana cara konfigurasi HTTPS di server yang sudah online atau production server? Nah, di tutorial ini saya membahas HTTPS dengan Apache web server di CentOS 7. Untuk tutorial Let’s Encrypt dengan Nginx baca di sini.

Tentang Let’s Encrypt

Dulu untuk mendapatkan sertifikat SSL, kita harus membeli dari Certificate Authority dan memperbarui sertifikat SSL jika masa berlaku telah habis. Sekarang sudah ada Let’s Encrypt yang memberikan sertifikat SSL gratis level Domain Validation yang belaku selama 90 hari.

Let’s Encrypt adalah organisasi non profit yang didirikan dengan tujuan agar website yang ada di dunia ini seluruhnya bisa menjadi aman. Sumber pendanaan untuk Let’s Encrypt berasal dari sponsor dan donasi berbagai perusahaan teknologi dunia seperti Mozilla, Cisco, EFF, Chrome, Facebook, Automattic, Vultr, Digitalocean, dan masih banyak lagi.

Cara Install Let's Encrypt
Sponso dan Donatur Let’s Encrypt

Kalau website berada di shared hosting, pada umumnya control panel hosting seperti cPanel sudah mendukung sertifikat SSL Let’s Encrypt. Hanya membutuhkan beberapa klik di cPanel, website kita sudah menggunakan SSL Let’s Encrypt.

Berbeda kalau berada di VPS atau dedicated server, kita harus melakukan instalasi dan konfigurasi Let’s Encrypt beserta web server.

0. Perangkat yang Digunakan

Perangkat yang digunakan pada tutorial ini:

  • Domain linus.cf
  • VPS Vultr dengan OS CentOS 7 64bit
  • Web Server Apache
  • certbot
  • Mozilla Firefox

1. Install Let’s Encrypt untuk Apache

Diasumsikan virtualhost untuk domain linus.cf sudah aktif dan dapat diakses dengan baik.

Cara Install Let's Encrypt
Domain linus.cf dengan protokol HTTP

Install EPEL repository

Install modul SSL Apache dan certbot untuk Apache

2. Meminta Sertifikat SSL dari Let’s Encrypt

Selanjutnya meminta sertifikat SSL untuk domain linus.cf.

Masukkan alamat email untuk notifikasi sertifikat SSL yang akan habis masa berlakunya.

Setujui ToS

Jawab Y untuk mendapatkan informasi mengenai proyek Let’s Encrypt.

Sertifikat SSL mulai dibuat

Membuat virtualhost dengan SSL.

Jawab 2, semua permintaan HTTP dialihkan ke HTTPS. certbot akan mengubah konfigurasi VirtualHost Apache.

Sertifikat SSL sudah aktif dan dapat diuji menggunakan ssllabs.com.

3. Memeriksa Konfigurasi VirtualHost Apache

Memeriksa perubahan yang dilakukan oleh certbot terhadap file konfigurasi VirtualHost Apache.

File linus.cf.conf. Bertambah opsi RewriteEngine, RewriteCond, dan RewriteRule.

certbot juga membuat file baru linus.cf-le-ssl.conf yang merupakan konfigurasi virtualhost untuk port 443 (HTTPS) dan berisi opsi pemanggilan file sertifikat SSL.

4. Pengujian SSL / HTTPS

Selanjutnya menguji apakah SSL sudah terpasang dengan baik.

a. Cara Pertama: Mengakses domain melalui web browser

Domain harus dapat diakses menggunakan HTTPS dan harus secara otomatis dialihkan dari HTTP ke HTTPS.

Cara Install Let's Encrypt
Domain linus.cf dengan protokol HTTPS

b. Cara Kedua: Menguji Rating Sertifikat SSL

Pengujian dilakukan menggunakan layanan dari SSLLabs.com.

Cara Install Let's Encrypt
SSL Labs Menguji Rating SSL linus.cf

5. Memperbarui Sertifikat SSL Secara Otomatis

Sertifikat SSL dari Let’s Encrypt hanya berlaku selama 90 hari dan harus diperbarui secara berkala. Kita dapat menggunakan crontab atau cronjob untuk menjalankan perintah memperbarui sertifikat SSL secara otomatis.

Masuk modifikasi crontab

Buat penjadwalan untuk certbot. Menjalankan perintah memperbarui sertifikat SSL setiap hari pada jam 01.00.

Selamat mencoba 🙂

One comment

  1. Pak Musa Amiin , Terima Kasih Banyak atas tutorialnya ya . ini sangat membantu saya dalam setup ssl di vps saya , karena vps saya tidak menggunakan web panel ,heheheh

Leave a Reply

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