bg-tutorials

Cara Menginstal Sertifikat SSL di Apache

Dalam panduan ini, Anda akan mempelajari cara menginstal sertifikat SSL di Apache, langkah demi langkah. Petunjuk ini berlaku untuk Apache 2.4, lini rilis stabil saat ini.

Daftar Isi

Bagaimana cara membuat kode CSR di Apache?

Certificate Signing Request, atau cukup disebut CSR, adalah berkas teks kecil yang berisi informasi tentang kepemilikan domain dan/atau perusahaan Anda. Membuat CSR merupakan bagian integral dari proses pembelian SSL, dan semua Certificate Authority komersial mewajibkan pemohon SSL untuk menyelesaikan langkah ini.

Anda memiliki dua pilihan:

Menginstal sertifikat SSL di Apache

Setelah Certificate Authority menandatangani dan mengirimkan sertifikat SSL kepada Anda, Anda dapat menginstalnya dengan aman di server Apache Anda. Ikuti langkah-langkah di bawah ini.

Langkah 1: Siapkan berkas sertifikat Anda

Unduh dan ekstrak berkas dari folder ZIP yang Anda terima dari Certificate Authority Anda. Biasanya Anda akan menemukan:

  • Berkas .crt – sertifikat SSL utama Anda.
  • Berkas .ca-bundle – sertifikat perantara (dan root) yang membentuk rantai kepercayaan. Rantai ini diperlukan agar peramban dan aplikasi dapat memverifikasi sertifikat Anda. Tanpanya, beberapa klien mungkin menandai situs Anda sebagai tidak aman.

Unggah berkas-berkas ini, bersama dengan private key (.key) yang Anda buat bersamaan dengan CSR, ke direktori yang aman di server Anda, misalnya /etc/ssl/. Pastikan private key hanya dapat dibaca oleh root (chmod 600).

Disarankan (Apache 2.4.8 dan yang lebih baru): gabungkan sertifikat Anda dan CA bundle menjadi satu berkas “full chain”. Sejak Apache 2.4.8, direktif SSLCertificateFile memuat sertifikat perantara langsung dari berkas ini, itulah sebabnya direktif lama SSLCertificateChainFile tidak lagi diperlukan:

cat your_domain.crt your_domain.ca-bundle > your_domain_fullchain.crt

Jika CA Anda memberikan sertifikat perantara sebagai berkas terpisah, gabungkan terlebih dahulu dengan sertifikat Anda, diikuti oleh sertifikat perantara yang diurutkan mulai dari yang menandatangani sertifikat Anda hingga ke root (sertifikat root itu sendiri bersifat opsional):

cat your_domain.crt intermediate.crt root.crt > your_domain_fullchain.crt

Misalnya, saat menginstal sertifikat Sectigo PositiveSSL, Anda akan menggabungkan sertifikat domain Anda dengan bundel perantara Sectigo. Selalu gunakan nama berkas yang tepat sebagaimana disediakan oleh CA Anda.

Langkah 2: Aktifkan modul SSL (mod_ssl)

Sebelum mengonfigurasi HTTPS, pastikan modul SSL Apache sudah diaktifkan.

Pada Debian/Ubuntu, aktifkan mod_ssl (dan mod_headers, yang akan Anda perlukan untuk header HSTS di Langkah 4):

sudo a2enmod ssl
sudo a2enmod headers

Pada RHEL/CentOS/AlmaLinux/Rocky Linux, instal paket modul SSL (modul akan dimuat secara otomatis setelah terinstal):

sudo dnf install mod_ssl

Langkah 3: Temukan berkas konfigurasi Apache

Tergantung pada sistem operasi dan versi Apache Anda, konfigurasi mungkin berada di berkas yang berbeda. Cari httpd.conf, apache2.conf, atau berkas konfigurasi SSL/situs khusus, di salah satu lokasi berikut:

  • Debian/Ubuntu: konfigurasi utama /etc/apache2/apache2.conf; konfigurasi per situs di /etc/apache2/sites-available/.
  • RHEL/CentOS/AlmaLinux/Rocky: konfigurasi utama /etc/httpd/conf/httpd.conf; konfigurasi SSL /etc/httpd/conf.d/ssl.conf.

Catatan: Jika server Apache Anda berjalan di Ubuntu, Anda juga dapat mengikuti petunjuk instalasi SSL khusus untuk Ubuntu kami.

Langkah 4: Konfigurasikan virtual host

Pertama, cadangkan berkas konfigurasi Anda saat ini. Dengan begitu, jika terjadi kesalahan, Anda dapat dengan cepat mengembalikan perubahan Anda:

sudo cp /etc/httpd/conf.d/ssl.conf /etc/httpd/conf.d/ssl.conf.backup

Sekarang buka berkas konfigurasi dan siapkan virtual host HTTPS (port 443). Virtual host lengkap dan modern akan terlihat seperti ini:

<VirtualHost *:443>
    ServerName  www.example.com
    ServerAdmin [email protected]
    DocumentRoot /var/www/example

    SSLEngine on

    # Apache 2.4.8+ : sertifikat server + rantai perantara dalam SATU berkas
    SSLCertificateFile    /etc/ssl/example_com_fullchain.crt
    SSLCertificateKeyFile /etc/ssl/example_com.key

    # Pengerasan TLS yang direkomendasikan (2026)
    SSLProtocol         -all +TLSv1.2 +TLSv1.3
    SSLHonorCipherOrder off

    # Beri tahu peramban untuk selalu menggunakan HTTPS. Hapus tanda # di depan untuk mengaktifkan HSTS,
    # tetapi hanya setelah Anda memastikan HTTPS berfungsi dengan benar:
    # Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"

    ErrorLog  ${APACHE_LOG_DIR}/example_error.log
    CustomLog ${APACHE_LOG_DIR}/example_access.log combined
</VirtualHost>

Ganti example.com, document root, dan jalur berkas dengan nilai Anda sendiri. Berikut fungsi dari direktif-direktif kunci ini:

  • SSLEngine on – mengaktifkan SSL/TLS untuk virtual host ini.
  • SSLCertificateFile – jalur ke berkas full-chain Anda (sertifikat + perantara) yang dibuat pada Langkah 1. Pada Apache 2.4.8+, direktif tunggal ini menggantikan SSLCertificateChainFile yang sudah usang.
  • SSLCertificateKeyFile – jalur ke private key Anda, yang dibuat bersamaan dengan CSR.
  • SSLProtocol -all +TLSv1.2 +TLSv1.3 – menonaktifkan protokol SSL/TLS lama yang tidak aman dan hanya mengizinkan TLS 1.2 dan TLS 1.3.
  • Strict-Transport-Security (HSTS) – memerintahkan peramban untuk terhubung hanya melalui HTTPS. Memerlukan mod_headers (diaktifkan pada Langkah 2). Aktifkan hanya setelah Anda memastikan HTTPS berfungsi dengan benar.

Pastikan tidak ada baris ini yang dimulai dengan # (yang akan menjadikannya komentar). Pada Debian/Ubuntu, ${APACHE_LOG_DIR} mengarah ke /var/log/apache2; pada sistem berbasis RHEL gunakan /var/log/httpd/ sebagai gantinya.

Server lawas: Jika Anda masih menggunakan versi Apache yang lebih lama dari 2.4.8, simpan sertifikat dan rantainya dalam berkas terpisah dan tambahkan direktif usang SSLCertificateChainFile /etc/ssl/example_com.ca-bundle di bawah SSLCertificateFile. Pada server modern mana pun, pendekatan full-chain di atas lebih disarankan.

Pengerasan lanjutan (opsional): untuk cipher suite yang lebih kuat dan OCSP stapling, buat konfigurasi khusus dengan Mozilla SSL Configuration Generator. OCSP stapling juga memerlukan direktif SSLStaplingCache dalam konfigurasi Apache global Anda.

Aktifkan situs: Pada Debian/Ubuntu, virtual host yang ditempatkan di /etc/apache2/sites-available/ tidak akan dimuat sampai Anda mengaktifkannya. Jika Anda menyimpan konfigurasi ini sebagai berkas baru (misalnya example-ssl.conf), aktifkan dengan:

sudo a2ensite example-ssl.conf

Anda juga dapat mengedit default-ssl.conf bawaan, tetapi berkas ini pun harus diaktifkan dengan a2ensite default-ssl. Pada RHEL/CentOS/AlmaLinux/Rocky, berkas dalam /etc/httpd/conf.d/ dimuat secara otomatis — tetapi perlu diperhatikan bahwa ssl.conf sudah menyertakan blok <VirtualHost _default_:443> bawaan dengan sertifikat self-signed, jadi sebaiknya edit blok tersebut atau tambahkan virtual host Anda sebagai berkas terpisah seperti /etc/httpd/conf.d/yourdomain.conf untuk menghindari dua host port-443 yang saling tumpang tindih.

Langkah 5: Alihkan HTTP ke HTTPS

Untuk memastikan pengunjung selalu mengakses versi situs Anda yang aman, tambahkan virtual host kedua pada port 80 yang secara permanen mengalihkan semua trafik HTTP ke HTTPS:

<VirtualHost *:80>
    ServerName www.example.com
    Redirect permanent / https://www.example.com/
</VirtualHost>

Langkah 6: Uji konfigurasi Anda dan mulai ulang Apache

Selalu uji konfigurasi Anda sebelum memulai ulang. Kesalahan sintaksis dapat membuat situs Anda offline, jadi jalankan:

sudo apachectl configtest

Jika semuanya benar, Anda akan melihat:

Syntax OK

Sekarang terapkan perubahan dengan memuat ulang Apache (memuat ulang akan mengaktifkan konfigurasi baru tanpa memutus koneksi yang sudah ada):

sudo systemctl reload apache2     # Debian/Ubuntu
sudo systemctl reload httpd       # RHEL/CentOS/AlmaLinux/Rocky

Jika memuat ulang saja tidak cukup, mulai ulang layanan sebagai gantinya (sudo systemctl restart apache2 atau httpd). Pada sistem lama tanpa systemd, gunakan sudo apachectl graceful.

Jika instalasi berhasil, selamat! Situs web Anda kini terlindungi dengan SSL/TLS.

Menguji instalasi SSL Anda

Setelah menginstal sertifikat SSL Anda di Apache, verifikasi bahwa semuanya berfungsi sebagaimana mestinya. Pemindaian instan akan mengungkap kesalahan atau kerentanan apa pun yang dapat memengaruhi kinerja sertifikat Anda. Gunakan alat SSL Checker kami untuk memeriksa status instalasi Anda.

Anda juga dapat mengonfirmasi sertifikat dan rantainya langsung dari baris perintah:

openssl s_client -connect www.example.com:443 -servername www.example.com

Di mana membeli sertifikat SSL untuk Apache?

Tempat terbaik untuk mendapatkan sertifikat SSL untuk Apache adalah dari SSL Dragon. Kami menawarkan harga dan diskon terbaik di seluruh rangkaian produk SSL kami, dan kami telah dengan cermat memilih merek SSL terbaik di pasaran untuk melengkapi situs web Anda dengan perlindungan yang tangguh. Semua sertifikat SSL kami kompatibel dengan Apache. Dapatkan sertifikat SSL sekarang!

Perlu diingat bahwa masa berlaku sertifikat SSL/TLS semakin diperpendek: masa berlaku maksimum turun menjadi 200 hari pada Maret 2026, 100 hari pada 2027, dan hanya 47 hari pada 2029. Siklus hidup yang lebih pendek berarti pembaruan yang lebih sering, jadi sebaiknya rencanakan proses pembaruan Anda (dan otomatisasinya) sejak dini.

Pertanyaan yang Sering Diajukan

Apa itu SSL di Apache?

SSL (Secure Sockets Layer), yang kini digantikan oleh TLS (Transport Layer Security), adalah protokol kriptografi yang mengenkripsi komunikasi antara dua titik akhir jaringan, misalnya server web seperti Apache dan peramban pengguna.

Bagaimana saya tahu jika SSL Apache sudah diaktifkan?

Pada distribusi Debian dan Ubuntu, cari direktif protokol SSL dalam konfigurasi:

grep -ir SSLProtocol /etc/apache2/

Jika SSL sudah dikonfigurasi, Anda akan melihat output serupa dengan:

/etc/apache2/mods-available/ssl.conf:SSLProtocol +TLSv1.2 +TLSv1.3

Anda juga dapat memastikan bahwa modul SSL telah dimuat ke server yang berjalan:

apachectl -M | grep ssl

Di mana letak berkas .conf SSL di Apache?

Berkas konfigurasi dapat berada di lokasi yang berbeda tergantung pada OS dan pengaturan Anda. Pada Debian/Ubuntu, periksa /etc/apache2/apache2.conf dan berkas per situs di /etc/apache2/sites-available/. Pada RHEL/CentOS/AlmaLinux/Rocky, periksa /etc/httpd/conf/httpd.conf dan /etc/httpd/conf.d/ssl.conf.

Apa perbedaan antara SSLCertificateFile dan SSLCertificateChainFile?

SSLCertificateFile mengarah ke sertifikat server Anda. Sejak Apache 2.4.8, berkas yang sama juga dapat menyimpan sertifikat perantara, sehingga menyediakan rantai yang lengkap. SSLCertificateChainFile adalah cara lama untuk menyediakan sertifikat perantara tersebut secara terpisah, tetapi telah usang sejak Apache 2.4.8. Pada server modern mana pun, letakkan sertifikat dan perantara dalam satu berkas dan rujuk hanya dengan SSLCertificateFile.

Hemat 10% untuk Sertifikat SSL saat memesan hari ini!

Penerbitan cepat, enkripsi kuat, kepercayaan peramban 99,99%, dukungan khusus, dan jaminan uang kembali 25 hari. Kode kupon: SAVE10

Ditulis oleh

Penulis konten berpengalaman yang berspesialisasi dalam Sertifikat SSL. Mengubah topik keamanan siber yang rumit menjadi konten yang jelas dan menarik. Berkontribusi untuk meningkatkan keamanan digital melalui narasi yang berdampak.