15%

Hemat 15% di Semua Layanan Hosting

Uji kemampuanmu dan dapatkan Diskon pada paket hosting apa saja

Gunakan kode:

Skills
Memulai
10.10.2024

Cara Menginstal Sertifikat SSL pada Domain

Sebuah sertifikat SSL (Secure Sockets Layer / TLS) adalah kredensial kriptografi yang dikeluarkan oleh Certificate Authority (CA) tepercaya yang mengautentikasi identitas server Anda dan membangun saluran terenkripsi antara server dan browser klien. Ketika dipasang dengan benar, sertifikat ini meningkatkan situs Anda dari http:// ke https://, mengaktifkan gembok browser, dan mencegah intersepsi man-in-the-middle terhadap data yang dikirimkan.

Untuk SEO, Google telah memperlakukan HTTPS sebagai sinyal peringkat yang dikonfirmasi sejak 2014. Bagi pengguna, sertifikat yang hilang atau salah konfigurasi memicu peringatan keamanan browser yang merusak tingkat konversi. Baik Anda mengelola satu halaman landing maupun infrastruktur multi-domain, mendapatkan SSL yang benar — dan mempertahankannya — adalah hal yang tidak bisa ditawar.

Prasyarat Sebelum Memulai

Sebelum menyentuh satu file konfigurasi pun, pastikan Anda memiliki hal-hal berikut:

  • Nama domain terdaftar yang diarahkan ke alamat IP server Anda dengan DNS yang telah sepenuhnya dipropagasi. Anda dapat mendaftarkan atau mentransfer domain melalui Pendaftaran Domain.
  • Bundel sertifikat SSL dari CA. Ini biasanya mencakup:
certificate.crt — sertifikat bertanda tangan utama Anda
private.key — kunci privat yang dibuat bersama CSR Anda
ca_bundle.crt — rantai CA perantara (kadang disebut file rantai)
Akses server atau panel kontrol — baik kredensial cPanel/Plesk maupun akses root/sudo SSH ke server.
Perangkat lunak web server — Apache atau Nginx, yang berjalan dan dikonfigurasi untuk domain Anda.
Port 443 terbuka — verifikasi bahwa firewall Anda mengizinkan TCP masuk pada port 443 sebelum memasang apa pun.

Jika Anda menjalankan lingkungan VPS Hosting, Anda akan memiliki akses root penuh dan dapat menggunakan salah satu dari tiga metode di bawah ini. Pengguna shared hosting biasanya terbatas pada metode cPanel.
Memilih Jenis Sertifikat SSL yang Tepat
Tidak semua sertifikat setara. Memilih jenis yang salah membuang uang atau meninggalkan celah dalam cakupan.



Jenis Sertifikat
Tingkat Validasi
Waktu Penerbitan
Gembok Browser
Terbaik Untuk








—
—
—
—
—








DV (Domain Validated)
Kontrol domain saja
Menit
Ya
Blog, lingkungan dev, situs kecil








OV (Organization Validated)
Domain + identitas organisasi
1–3 hari
Ya
Situs bisnis, platform SaaS








EV (Extended Validation)
Pemeriksaan entitas hukum penuh
3–7 hari
Ya (nama organisasi di beberapa browser)
E-commerce, perbankan, portal kepercayaan tinggi








Wildcard (`*.domain.com`)
DV atau OV
Menit–hari
Ya
Penerapan multi-subdomain








Multi-Domain (SAN)
DV, OV, atau EV
Bervariasi
Ya
Beberapa domain berbeda dalam satu sertifikat








Let’s Encrypt (DV gratis)
Kontrol domain saja
Detik
Ya
Domain yang dapat diakses publik mana pun





Untuk e-commerce produksi atau situs mana pun yang menangani data kartu pembayaran, sertifikat OV atau EV dari CA komersial sangat direkomendasikan. Sertifikat DV Let’s Encrypt sepenuhnya tepercaya dan sangat baik untuk sebagian besar kasus penggunaan, tetapi tidak menyertakan verifikasi identitas organisasi.
Anda dapat membeli sertifikat komersial langsung melalui Sertifikat SSL jika Anda memerlukan cakupan OV, EV, atau Wildcard dengan dukungan khusus.
Metode 1: Memasang Sertifikat SSL melalui cPanel
Antarmuka grafis cPanel adalah jalur tercepat bagi pengguna pada paket managed atau Shared Web Hosting. Jika Anda lebih suka lingkungan VPS yang dikelola cPanel, sebuah VPS dengan cPanel memberi Anda antarmuka yang sama dengan kontrol server penuh.
Langkah 1: Masuk ke cPanel
Navigasikan ke URL login cPanel Anda:
https://yourdomain.com:2083
Autentikasi dengan kredensial hosting Anda.
Langkah 2: Navigasi ke SSL/TLS Manager
Di bagian Security pada dasbor cPanel, klik SSL/TLS. Kemudian pilih Manage SSL Sites di bawah judul “Install and Manage SSL for your site (HTTPS)”.
Langkah 3: Pilih Domain Target
Gunakan dropdown Domain untuk memilih domain yang ingin Anda amankan. Jika domain tidak muncul, konfirmasi bahwa domain tersebut ditambahkan sebagai addon atau domain utama di cPanel.
Langkah 4: Tempel Komponen Sertifikat
Buka setiap file sertifikat di editor teks biasa (bukan Word) dan tempel isinya ke dalam kolom yang sesuai:

Certificate (CRT): Isi dari certificate.crt
  • Private Key (KEY): Isi dari private.key. Jika Anda membuat CSR di dalam cPanel, kolom ini otomatis terisi dari penyimpanan kunci cPanel.
  • Certificate Authority Bundle (CABUNDLE): Isi dari ca_bundle.crt. Menghilangkan kolom ini adalah salah satu penyebab paling umum kesalahan “untrusted certificate” pada perangkat mobile dan browser lama, karena browser tidak dapat membangun rantai ke root tepercaya.
  • Langkah 5: Pasang dan Verifikasi

    Klik Install Certificate. cPanel memvalidasi pasangan kunci-sertifikat sebelum mengonfirmasi. Jika ada ketidakcocokan antara kunci privat dan kunci publik sertifikat, cPanel akan menolak pemasangan dengan kesalahan eksplisit — jangan abaikan.

    Setelah pemasangan, kunjungi https://yourdomain.com dan konfirmasi gembok muncul. Juga uji https://www.yourdomain.com jika subdomain www sedang digunakan.

    Jebakan umum cPanel: AutoSSL (integrasi Let’s Encrypt bawaan cPanel) dapat menimpa sertifikat yang dipasang secara manual pada siklus pembaruan berikutnya. Jika Anda memasang sertifikat komersial, nonaktifkan AutoSSL untuk domain tersebut di bawah cPanel > SSL/TLS Status untuk mencegah penggantian yang tidak disengaja.

    Metode 2: Pemasangan Otomatis dengan Let’s Encrypt dan Certbot

    Certbot adalah klien ACME referensi untuk Let’s Encrypt. Certbot menangani pembuatan CSR, validasi domain, pengambilan sertifikat, konfigurasi web server, dan pembaruan — semuanya secara otomatis. Ini adalah pendekatan yang tepat untuk server Linux mana pun yang Anda kelola secara langsung.

    Langkah 1: Hubungkan ke Server Anda melalui SSH

    ssh username@your-server-ip

    Langkah 2: Pasang Certbot

    Debian / Ubuntu (Apache):

    sudo apt update && sudo apt install -y certbot python3-certbot-apache

    Debian / Ubuntu (Nginx):

    sudo apt update && sudo apt install -y certbot python3-certbot-nginx

    RHEL / AlmaLinux / Rocky Linux (Apache):

    sudo dnf install -y epel-release
    sudo dnf install -y certbot python3-certbot-apache

    RHEL / AlmaLinux / Rocky Linux (Nginx):

    sudo dnf install -y epel-release
    sudo dnf install -y certbot python3-certbot-nginx

    Langkah 3: Dapatkan dan Pasang Sertifikat

    Untuk Apache:

    sudo certbot --apache -d yourdomain.com -d www.yourdomain.com

    Untuk Nginx:

    sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com

    Certbot melakukan tantangan HTTP-01 secara default: ia menempatkan file sementara di root web Anda dan meminta server Let’s Encrypt untuk mengambilnya melalui port 80. Ini berarti port 80 harus terbuka dan DNS Anda harus diselesaikan dengan benar sebelum menjalankan perintah.

    Saat diminta, pilih opsi untuk mengalihkan semua lalu lintas HTTP ke HTTPS. Ini menulis pengalihan permanen 301 ke dalam konfigurasi server Anda, yang merupakan perilaku yang benar untuk SEO dan keamanan.

    Langkah 4: Verifikasi Pembaruan Otomatis

    Sertifikat Let’s Encrypt kedaluwarsa setelah 90 hari. Certbot memasang timer systemd (atau cron job pada sistem lama) yang mencoba pembaruan dua kali sehari ketika sertifikat berada dalam 30 hari sebelum kedaluwarsa. Uji logika pembaruan tanpa benar-benar memperbarui:

    sudo certbot renew --dry-run

    Dry run yang berhasil mengonfirmasi bahwa pipeline pembaruan berfungsi. Periksa status timer dengan:

    systemctl status certbot.timer

    Kasus tepi — tantangan DNS-01 untuk sertifikat wildcard: Tantangan HTTP-01 tidak dapat memvalidasi domain wildcard (*.yourdomain.com). Untuk wildcard, gunakan tantangan DNS-01, yang mengharuskan Anda membuat record TXT _acme-challenge di zona DNS Anda:

    sudo certbot certonly --manual --preferred-challenges dns -d "*.yourdomain.com" -d yourdomain.com

    Ikuti petunjuk untuk menambahkan record TXT, tunggu propagasi DNS, lalu tekan Enter untuk menyelesaikan validasi.

    Metode 3: Pemasangan SSL Manual melalui SSH (Apache dan Nginx)

    Pemasangan manual memberi Anda kontrol tepat atas penempatan sertifikat, cipher suite, dan konfigurasi virtual host. Ini adalah pendekatan yang disukai untuk server produksi di mana Anda perlu menerapkan kebijakan TLS tertentu.

    Langkah 1: Unggah File Sertifikat ke Server

    Gunakan scp untuk mentransfer file dari mesin lokal Anda:

    scp certificate.crt private.key ca_bundle.crt username@your-server-ip:/tmp/

    Kemudian pindahkan ke direktori yang aman dan tidak dapat diakses web:

    sudo mkdir -p /etc/ssl/yourdomain
    sudo mv /tmp/certificate.crt /etc/ssl/yourdomain/
    sudo mv /tmp/private.key /etc/ssl/yourdomain/
    sudo mv /tmp/ca_bundle.crt /etc/ssl/yourdomain/
    sudo chmod 600 /etc/ssl/yourdomain/private.key
    sudo chmod 644 /etc/ssl/yourdomain/certificate.crt /etc/ssl/yourdomain/ca_bundle.crt

    Catatan keamanan penting: Kunci privat tidak boleh dapat dibaca oleh semua orang. Izin chmod 600 membatasinya hanya untuk pengguna root. Pada sistem di mana Apache atau Nginx berjalan sebagai pengguna non-root (misalnya, www-data), layanan tetap membaca kunci saat startup saat berjalan sebagai root sebelum melepaskan hak istimewa — jadi 600 yang dimiliki oleh root adalah benar.

    Langkah 2a: Konfigurasi Apache

    Edit konfigurasi virtual host untuk domain Anda:

    sudo nano /etc/apache2/sites-available/yourdomain.com.conf

    Tambahkan atau modifikasi blok virtual host SSL:

    <VirtualHost *:80>
        ServerName yourdomain.com
        ServerAlias www.yourdomain.com
        Redirect permanent / https://yourdomain.com/
    </VirtualHost>
    
    <VirtualHost *:443>
        ServerName yourdomain.com
        ServerAlias www.yourdomain.com
    
        SSLEngine on
        SSLCertificateFile      /etc/ssl/yourdomain/certificate.crt
        SSLCertificateKeyFile   /etc/ssl/yourdomain/private.key
        SSLCertificateChainFile /etc/ssl/yourdomain/ca_bundle.crt
    
        # Modern TLS hardening
        SSLProtocol             all -SSLv3 -TLSv1 -TLSv1.1
        SSLCipherSuite          ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384
        SSLHonorCipherOrder     off
        SSLSessionTickets       off
    
        Header always set Strict-Transport-Security "max-age=63072000; includeSubDomains; preload"
    
        DocumentRoot /var/www/yourdomain
    </VirtualHost>

    Aktifkan modul SSL dan situs, lalu restart Apache:

    sudo a2enmod ssl headers
    sudo a2ensite yourdomain.com.conf
    sudo apache2ctl configtest
    sudo systemctl restart apache2

    Selalu jalankan apache2ctl configtest sebelum restart. Kesalahan sintaks dalam file konfigurasi akan mematikan seluruh web server.

    Langkah 2b: Konfigurasi Nginx

    Edit blok server domain Anda:

    sudo nano /etc/nginx/sites-available/yourdomain.com

    Tambahkan konfigurasi berikut:

    server {
        listen 80;
        server_name yourdomain.com www.yourdomain.com;
        return 301 https://yourdomain.com$request_uri;
    }
    
    server {
        listen 443 ssl http2;
        server_name yourdomain.com www.yourdomain.com;
    
        ssl_certificate      /etc/ssl/yourdomain/certificate.crt;
        ssl_certificate_key  /etc/ssl/yourdomain/private.key;
        ssl_trusted_certificate /etc/ssl/yourdomain/ca_bundle.crt;
    
        # Modern TLS hardening
        ssl_protocols        TLSv1.2 TLSv1.3;
        ssl_ciphers          ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384;
        ssl_prefer_server_ciphers off;
        ssl_session_cache    shared:SSL:10m;
        ssl_session_timeout  1d;
        ssl_session_tickets  off;
    
        # OCSP Stapling
        ssl_stapling         on;
        ssl_stapling_verify  on;
        resolver             8.8.8.8 8.8.4.4 valid=300s;
    
        add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload" always;
    
        root /var/www/yourdomain;
        index index.html index.php;
    }

    Aktifkan situs dan uji:

    sudo ln -s /etc/nginx/sites-available/yourdomain.com /etc/nginx/sites-enabled/
    sudo nginx -t
    sudo systemctl restart nginx

    Penjelasan OCSP Stapling: Tanpa stapling, browser harus menghubungi responder OCSP CA selama setiap handshake TLS untuk memeriksa apakah sertifikat telah dicabut. Ini menambah latensi dan membocorkan data penelusuran ke CA. Dengan ssl_stapling on, Nginx menyimpan respons OCSP dalam cache dan menyajikannya langsung ke klien, menghilangkan round-trip.

    Penguatan TLS: Apa yang Terlewat dari Konfigurasi Asli

    Sertifikat yang dipasang dengan pengaturan default sudah aman, tetapi belum diperkuat. Tabel berikut merangkum direktif tambahan yang membedakan nilai SSL Labs yang lulus dari A+:

    Direktif PenguatanDirektif ApacheDirektif NginxTujuan
    Nonaktifkan TLS 1.0 / 1.1`SSLProtocol all -TLSv1 -TLSv1.1``ssl_protocols TLSv1.2 TLSv1.3`Hilangkan kerentanan protokol yang sudah usang
    Header HSTS`Header always set Strict-Transport-Security``add_header Strict-Transport-Security`Paksa HTTPS di tingkat browser, cegah SSL stripping
    OCSP Stapling`SSLUseStapling on``ssl_stapling on`Kurangi latensi handshake, tingkatkan privasi
    Nonaktifkan session tickets`SSLSessionTickets off``ssl_session_tickets off`Cegah degradasi forward secrecy
    Cipher suite yang kuat`SSLCipherSuite ECDHE-…``ssl_ciphers ECDHE-…`Terapkan cipher AEAD, hilangkan RC4/3DES
    HTTP/2`Protocols h2 http/1.1``listen 443 ssl http2`Peningkatan performa melalui TLS

    Memverifikasi dan Menguji Pemasangan SSL

    Pemasangan tidak selesai sampai Anda telah memverifikasi hasilnya dari perspektif eksternal.

    Verifikasi Browser

    Kunjungi https://yourdomain.com. Ikon gembok mengonfirmasi sertifikat yang valid dan tepercaya. Klik gembok dan periksa detail sertifikat: verifikasi bahwa Common Name atau Subject Alternative Name cocok dengan domain Anda, dan periksa tanggal kedaluwarsa.

    Uji Server SSL Labs

    Navigasikan ke SSL Labs dan masukkan domain Anda. Laporan menilai konfigurasi TLS Anda dari F hingga A+ dan menandai masalah tertentu: cipher suite yang lemah, sertifikat rantai yang hilang, ketiadaan HSTS, dan dukungan protokol. Nilai A+ memerlukan HSTS dengan max-age yang panjang dan tidak ada dukungan untuk TLS 1.0 atau 1.1.

    Verifikasi Baris Perintah dengan OpenSSL

    openssl s_client -connect yourdomain.com:443 -servername yourdomain.com

    Ini menghasilkan rantai sertifikat penuh, cipher suite yang dinegosiasikan, dan versi TLS. Cari Verify return code: 0 (ok) di akhir output. Kode pengembalian non-nol apa pun menunjukkan masalah rantai atau kepercayaan.

    Untuk memeriksa tanggal kedaluwarsa sertifikat secara langsung:

    echo | openssl s_client -connect yourdomain.com:443 -servername yourdomain.com 2>/dev/null | openssl x509 -noout -dates

    Memeriksa Konten Campuran

    Setelah mengaktifkan HTTPS, konten campuran adalah masalah residual yang paling umum. Ini terjadi ketika halaman HTTPS memuat sumber daya (gambar, skrip, stylesheet, iframe) melalui HTTP. Konten campuran memblokir sumber daya aktif (skrip, iframe) sepenuhnya di browser modern dan menghasilkan peringatan konsol untuk sumber daya pasif (gambar).

    Perbaiki konten campuran dengan:

    1. Memperbarui semua URL http:// yang dikodekan keras di CMS atau HTML Anda ke https:// atau protokol-relatif //.
    2. Menambahkan header Content Security Policy dengan upgrade-insecure-requests sebagai tangkapan sementara:
    add_header Content-Security-Policy "upgrade-insecure-requests" always;
    1. Menggunakan DevTools browser (F12 > Console) untuk mengidentifikasi sumber daya yang melanggar secara spesifik.

    Pembaruan Sertifikat dan Manajemen Siklus Hidup

    Sumber SertifikatMasa Berlaku DefaultMetode PembaruanOtomatisasi
    Let’s Encrypt (Certbot)90 hari`certbot renew` melalui timer systemdSepenuhnya otomatis
    CA Komersial (cPanel)1–2 tahunPenerbitan ulang dan pemasangan ulang manualManual atau terskrip
    CA Komersial (SSH)1–2 tahunGanti file, muat ulang web serverDapat diotomatisasi dengan cron
    CA Internal / self-signedKustomManualManual

    Untuk sertifikat komersial yang dikelola secara manual, atur pengingat kalender 30 hari sebelum kedaluwarsa. Sertifikat yang kedaluwarsa lebih buruk daripada tidak ada sertifikat — browser menampilkan kesalahan pemblokiran halaman penuh yang tidak dapat dengan mudah dilewati pengguna.

    Jika Anda menjalankan beberapa domain atau aplikasi lalu lintas tinggi pada Dedicated Server, pertimbangkan untuk menerapkan solusi manajemen sertifikat terpusat seperti cert-manager (Kubernetes), Vault PKI, atau sertifikat wildcard untuk mengurangi overhead pembaruan di seluruh subdomain.

    Matriks Keputusan: Metode Pemasangan Mana yang Digunakan

    SkenarioMetode yang Direkomendasikan
    Shared hosting, tanpa akses SSHcPanel SSL/TLS Manager
    VPS atau dedicated server, sertifikat gratis diperlukanCertbot (Let’s Encrypt)
    VPS atau dedicated server, sertifikat komersial OV/EVPemasangan SSH manual
    Sertifikat wildcard (`*.domain.com`)SSH manual + tantangan DNS-01 melalui Certbot
    Sertifikat SAN multi-domainPemasangan SSH manual
    Tanpa pengalaman teknis, managed hostingcPanel AutoSSL atau SSL satu klik dari penyedia hosting

    Daftar Periksa Poin Penting Teknis

    • Konfirmasi port 443 terbuka di firewall Anda sebelum memasang sertifikat apa pun.
    • Selalu verifikasi bahwa kunci privat cocok dengan sertifikat sebelum pemasangan: openssl x509 -noout -modulus -in certificate.crt | md5sum dan openssl rsa -noout -modulus -in private.key | md5sum harus menghasilkan hash yang identik.
    • Sertakan rantai perantara penuh (ca_bundle.crt) — menghilangkannya menyebabkan kegagalan kepercayaan pada browser mobile bahkan ketika Chrome desktop menampilkan gembok.
    • Atur chmod 600 pada file kunci privat; jangan pernah mengeksposnya di direktori yang dapat diakses web.
    • Nonaktifkan TLS 1.0 dan TLS 1.1 dalam konfigurasi web server Anda — protokol ini sudah usang dan dapat dieksploitasi.
    • Aktifkan HSTS dengan includeSubDomains hanya setelah mengonfirmasi bahwa semua subdomain juga menyajikan HTTPS.
    • Jalankan certbot renew --dry-run setelah pengaturan Certbot awal untuk mengonfirmasi pipeline pembaruan berfungsi.
    • Uji dengan SSL Labs setelah setiap pemasangan atau perubahan konfigurasi.
    • Audit konten campuran segera setelah beralih ke HTTPS — ini secara diam-diam merusak fungsionalitas.
    • Untuk sertifikat wildcard Let’s Encrypt, gunakan tantangan DNS-01, bukan HTTP-01.

    Pertanyaan yang Sering Diajukan

    Apa perbedaan antara sertifikat SSL dan sertifikat TLS?

    SSL (Secure Sockets Layer) adalah protokol lama yang sudah tidak digunakan sejak 1999. Penggantinya, TLS (Transport Layer Security), adalah yang sebenarnya digunakan oleh semua koneksi HTTPS modern. Istilah “sertifikat SSL” bertahan sebagai singkatan industri, tetapi setiap sertifikat yang diterbitkan saat ini beroperasi melalui TLS 1.2 atau TLS 1.3.

    Mengapa sertifikat SSL saya ditampilkan sebagai tepercaya di Chrome tetapi tidak di perangkat Android?

    Ini hampir selalu merupakan rantai sertifikat perantara yang hilang. Chrome desktop memiliki mekanisme pengambilan sertifikat yang agresif (AIA fetching) yang dapat merekonstruksi rantai bahkan ketika tidak ada di server. Penyimpanan sistem Android tidak. Selalu sertakan file rantai ca_bundle.crt dalam konfigurasi server Anda.

    Bisakah saya memasang sertifikat SSL pada domain yang belum memiliki situs web?

    Ya, tetapi hanya jika record DNS A domain tersebut mengarah ke alamat IP server. CA harus dapat menjangkau server untuk menyelesaikan validasi domain. Jika DNS belum dipropagasi, tantangan akan gagal.

    Bagaimana cara memperbarui sertifikat SSL komersial tanpa downtime?

    Buat CSR baru di server, kirimkan ke CA Anda, terima bundel sertifikat baru, ganti file sertifikat di server, dan muat ulang web server (systemctl reload apache2 atau systemctl reload nginx). Pemuatan ulang menerapkan sertifikat baru tanpa memutus koneksi yang ada, tidak seperti restart penuh.

    Apakah memasang sertifikat SSL secara otomatis mengalihkan HTTP ke HTTPS?

    Tidak. Memasang sertifikat hanya mengaktifkan HTTPS. Pengalihan HTTP ke HTTPS harus dikonfigurasi secara terpisah di virtual host atau blok server Anda. Plugin --apache dan --nginx Certbot menawarkan untuk mengonfigurasi pengalihan ini secara otomatis selama pemasangan. Untuk pemasangan manual, tambahkan direktif Redirect permanent (Apache) atau return 301 (Nginx) yang eksplisit di blok server port 80.

    15%

    Hemat 15% di Semua Layanan Hosting

    Uji kemampuanmu dan dapatkan Diskon pada paket hosting apa saja

    Gunakan kode:

    Skills
    Memulai