Memasang sertifikat SSL melalui terminal bisa dilakukan dengan dua cara utama, tergantung kebutuhan Anda: menggunakan Certbot (Let’s Encrypt) untuk sertifikat gratis dan otomatis atau menggunakan OpenSSL untuk membuat sertifikat self-signed/internal.

Berikut adalah panduan lengkap untuk kedua metode tersebut.


⚙️ Prasyarat Sebelum Memulai

Pastikan hal-hal berikut sudah terpenuhi:

  1. Akses Root/Sudo: Anda memerlukan hak akses administrator pada server.
  2. Web Server Terinstall: Apache2 atau Nginx sudah terpasang dan berjalan.
  3. Domain (untuk metode 1): Domain Anda sudah mengarah (resolve) ke IP server.
  4. Firewall: Pastikan port 80 (HTTP) dan 443 (HTTPS) terbuka .

🚀 Metode 1: Install Sertifikat SSL Otomatis (Gratis) via Let’s Encrypt (Certbot)

Metode ini paling direkomendasikan untuk server production karena sertifikat diakui oleh browser (trusted) dan proses renewal otomatis.

1. Install Certbot
Akses server via SSH, lalu install Certbot sesuai Web Server Anda:

  • Untuk Ubuntu/Debian (Apache):
    bash sudo apt update sudo apt install certbot python3-certbot-apache -y
  • Untuk Ubuntu/Debian (Nginx):
    bash sudo apt update sudo apt install certbot python3-certbot-nginx -y
    Untuk CentOS/RHEL, gunakan perintah sudo dnf install certbot python3-certbot-apache .

2. Jalankan dan Install Sertifikat

  • Untuk Apache:
    bash sudo certbot --apache
  • Untuk Nginx:
    bash sudo certbot --nginx

3. Ikuti Instruksi di Layar
Anda akan diminta memasukkan:

  • Alamat email untuk notifikasi kedaluwarsa.
  • Domain name (contoh: domainanda.com dan www.domainanda.com).
  • Pilihan apakah akan mengalihkan semua traffic HTTP ke HTTPS (sangat disarankan untuk memilih opsi ini) .

4. Verifikasi & Auto-Renewal
Sertifikat akan tersimpan otomatis di /etc/letsencrypt/live/domainanda.com/. Certbot juga secara otomatis menjadwalkan cron job untuk memperbarui (renew) sertifikat setiap kali mendekati masa berlaku habis .


🛠️ Metode 2: Membuat & Install Sertifikat Self-Signed (Manual via OpenSSL)

Metode ini berguna untuk lingkungan development, testing, atau internal network. Catatan: Browser akan menampilkan peringatan bahwa koneksi tidak aman karena sertifikat ini tidak diterbitkan oleh CA resmi.

1. Generate Certificate & Key
Jalankan perintah berikut di terminal server:

sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
-keyout /etc/ssl/private/domainanda.key \
-out /etc/ssl/certs/domainanda.crt

Penjelasan perintah:

  • req -x509: Membuat sertifikat self-signed.
  • -days 365: Masa berlaku 1 tahun.
  • -newkey rsa:2048: Membuat kunci RSA 2048-bit.
  • -nodes: Membuat kunci tanpa password (untuk kemudahan startup server) .

2. Isi Informasi Sertifikat
Anda akan diminta mengisi data seperti Country, State, Organization, dan yang paling penting adalah Common Name (CN) . Isi Common Name dengan domain name atau alamat IP server Anda.

3. Konfigurasi Web Server (Apache)
Buka file konfigurasi virtual host SSL Anda (biasanya di /etc/apache2/sites-available/domain-ssl.conf), lalu tambahkan atau edit baris berikut:

<VirtualHost *:443>
    ServerName domainanda.com
    SSLEngine on
    SSLCertificateFile /etc/ssl/certs/domainanda.crt
    SSLCertificateKeyFile /etc/ssl/private/domainanda.key
    # abaikan SSLCertificateChainFile untuk self-signed
</VirtualHost>

Aktifkan konfigurasi dan restart Apache:

sudo a2enmod ssl
sudo a2ensite domain-ssl.conf
sudo systemctl restart apache2

Untuk Nginx, gunakan direktif ssl_certificate dan ssl_certificate_key di dalam blok server .


📂 Dimana Letak File Sertifikat?

  • Certbot (Let’s Encrypt):/etc/letsencrypt/live/[nama-domain-anda]/
    • fullchain.pem: File sertifikat utama.
    • privkey.pem: File kunci pribadi .
  • Self-Signed (OpenSSL manual):
    • Sertifikat: /etc/ssl/certs/
    • Kunci: /etc/ssl/private/ .

💡 Ringkasan & Saran

  • Untuk Website Publik: Gunakan Metode 1 (Certbot). Ini lebih aman, gratis, dan tidak merepotkan karena pembaruan otomatis.
  • Untuk Testing/Internal: Gunakan Metode 2 (Self-Signed). Cepat dan tidak memerlukan domain publik.

Jika Anda menemui kendala saat konfigurasi, coba cek log error web server Anda (biasanya di /var/log/apache2/error.log atau /var/log/nginx/error.log).