SSL/TLS Certificate Management: Panduan Lengkap HTTPS untuk Server 2026
Panduan end-to-end SSL/TLS certificate: Let's Encrypt, wildcard cert, konfigurasi Nginx, cipher suite optimal, auto-renewal, dan best practice keamanan.
HTTPS bukan lagi opsional — wajib. Google menjadikan HTTPS sebagai ranking signal, browser menandai HTTP sebagai "not secure", dan tanpa encryption, data user bisa diintip oleh siapa pun di jaringan yang sama. Artikel ini membahas SSL/TLS certificate management dari level dasar hingga advanced.
Cara Kerja SSL/TLS
SSL/TLS menggunakan asymmetric cryptography untuk pertukaran kunci dan symmetric cryptography untuk enkripsi data:
1. Client mengirim ClientHello ke server — versi TLS, cipher suites yang didukung
2. Server merespon dengan ServerHello — pilih TLS version dan cipher suite, kirim certificate (public key)
3. Client verifikasi certificate — apakah trusted CA? Apakah domain match? Apakah masih valid?
4. Key Exchange — menggunakan RSA atau ECDHE untuk membuat session key bersama
5. Encrypted communication — data dienkripsi dengan session key simetris (AES-GCM/ChaCha20)
Let's Encrypt dan Certbot
Let's Encrypt adalah Certificate Authority gratis yang menyediakan SSL certificate dengan validasi domain otomatis. Certbot adalah client resmi yang mengotomatiskan seluruh proses.
Instalasi: sudo apt install certbot python3-certbot-nginx (untuk Nginx). Atau python3-certbot-apache untuk Apache.
Request Certificate: certbot --nginx -d domain.com -d www.domain.com. Certbot akan otomatis memodifikasi konfigurasi Nginx Anda — tambahkan SSL directives dan set redirect HTTP → HTTPS.
Auto-Renewal: certbot menyiapkan systemd timer: systemctl list-timers | grep certbot. Timer berjalan dua kali sehari dan memperbarui certificate yang akan expired dalam 30 hari.
Wildcard Certificate dengan DNS Challenge
Wildcard certificate (*.domain.com) mencakup semua subdomain — ideal untuk multi-service server: api.domain.com, app.domain.com, blog.domain.com, admin.domain.com — cukup satu certificate.
Wildcard memerlukan DNS-01 challenge: certbot certonly --manual --preferred-challenges dns -d *.domain.com -d domain.com. Certbot akan memberikan TXT record yang harus ditambahkan ke DNS zone Anda. Verifikasi DNS propagation, lalu complete.
Auto-Renewal Wildcard: Untuk auto-renewal wildcard, gunakan DNS plugin certbot yang sesuai dengan provider DNS Anda. Contoh: certbot-dns-cloudflare, certbot-dns-route53, certbot-dns-digitalocean. Pasang plugin, konfigurasi API credentials, dan auto-renewal berjalan otomatis.
Konfigurasi SSL Optimal
Nginx SSL Configuration:
listen 443 ssl http2; — wajib HTTP/2 untuk performa lebih baik. ssl_certificate dan ssl_certificate_key — path ke certificate dan private key. ssl_session_cache shared:SSL:10m; — cache session untuk mempercepat koneksi berikutnya. ssl_session_timeout 10m; — timeout session cache. ssl_protocols TLSv1.2 TLSv1.3; — disable SSLv3, TLS 1.0, TLS 1.1. ssl_ciphers HIGH:!aNULL:!MD5; — cipher kuat. ssl_prefer_server_ciphers on; — server menentukan cipher.
HSTS (HTTP Strict Transport Security):
add_header Strict-Transport-Security "max-age=63072000; includeSubDomains" always; — browser akan selalu menggunakan HTTPS untuk domain ini selama 2 tahun. Aktifkan setelah yakin semua traffic sudah HTTPS.
Cipher Suite: Pilih yang Terbaik
Urutan cipher recomended: ECDHE-ECDSA-AES128-GCM-SHA256 (terbaik — performa + keamanan), ECDHE-RSA-AES128-GCM-SHA256 (alternatif), ECDHE-ECDSA-CHACHA20-POLY1305 (untuk mobile tanpa AES hardware acceleration).
Gunakan ssllabs.com/ssltest untuk testing konfigurasi. Target: grade A+. Cek: protocol support, key exchange, cipher strength, HSTS, dan certificate chain.
ECDSA vs RSA Certificate
ECDSA (Elliptic Curve Digital Signature Algorithm) menggunakan kunci lebih pendek dengan keamanan setara RSA 3072-bit. Kelebihan: handshake lebih cepat (CPU usage lebih rendah), ukuran certificate lebih kecil. Kekurangan: older clients mungkin tidak support.
Best practice: dual certificate — ECDSA (prime256v1) untuk modern clients, RSA (2048-bit) untuk legacy support. Nginx bisa serve certificate berbeda berdasarkan cipher yang dinegosiasikan.
Monitoring Certificate Expiry
Certificate expired = website down + browser error menakutkan. Cara monitoring:
• Certbot auto-renewal logs: journalctl -u certbot.timer
• Grafana dashboard: Blackbox Exporter dengan probe SSL certificate expiry
• Script manual: openssl s_client -connect domain.com:443 2>/dev/null | openssl x509 -noout -enddate
• External monitoring: uptimerobot.com, betteruptime.com — gratis untuk basic check
Set notifikasi: kirim alert 14 hari sebelum expired, 7 hari (warning), 3 hari (critical). Jangan pernah manual check certificate expiry.
SSL di Load Balancer
Untuk arsitektur multi-server, SSL termination di load balancer (Nginx/HAProxy) lebih efisien: backend menerima traffic plain HTTP, mengurangi CPU load di setiap server. Tapi pastikan traffic antar server internal juga aman — gunakan internal CA atau network isolation.
Kesimpulan
SSL/TLS management yang baik: Let's Encrypt untuk certificate gratis dan auto-renewal, konfigurasi Nginx optimal (TLS 1.2/1.3, cipher kuat, HSTS), monitoring expiry dengan alert automated. SSL grade A+ bukan prestasi — itu standar minimum untuk server publik di 2026.