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.

Share
SSL/TLS Certificate Management: Panduan Lengkap HTTPS untuk Server 2026

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.