Dalam panduan ini, Anda akan mempelajari cara menginstal sertifikat SSL di CentOS dan penerus dari keluarga RHEL-nya (AlmaLinux, Rocky Linux, dan CentOS Stream) menggunakan web server Apache httpd.
Kami juga telah merekam video yang memandu Anda melalui seluruh prosesnya. Jika Anda lebih suka versi teks, silakan lanjutkan membaca di bawah ini.
Membuat kode CSR
Saat mengajukan sertifikat SSL, Anda terlebih dahulu membuat CSR (Certificate Signing Request) dan mengirimkannya ke Certificate Authority. CSR adalah blok teks yang berisi detail kontak dan domain Anda, dan berpasangan dengan private key yang dibuat pada waktu yang sama. Anda memiliki dua opsi:
- Gunakan CSR Generator kami untuk membuat CSR secara otomatis.
- Ikuti tutorial langkah demi langkah kami tentang cara membuat CSR di CentOS.
Kirimkan CSR ke Certificate Authority saat checkout. Setelah CA memvalidasinya dan menerbitkan sertifikat Anda, lanjutkan dengan instalasi di bawah ini.
Instal sertifikat SSL di CentOS / RHEL (Apache)
Perhatian tentang versi: CentOS Linux 8 mencapai End of Life pada 31 Desember 2021, dan CentOS Linux 7 mencapai EOL pada 30 Juni 2024. Untuk produksi, gunakan distribusi keluarga RHEL yang masih didukung: RHEL 8/9/10, AlmaLinux, Rocky Linux, atau CentOS Stream. Semuanya memiliki tata letak Apache httpd yang sama, sehingga langkah-langkah di bawah ini berlaku untuk semuanya.
Sebelum Anda mulai
Setelah validasi, Certificate Authority Anda akan mengirimkan file sertifikat melalui email. Pastikan Anda memiliki tiga file terpisah berikut ini:
- yourdomain.crt, sertifikat SSL utama Anda.
- yourdomain.ca-bundle, sertifikat perantara (CA bundle).
- yourdomain.key, private key yang Anda buat bersama CSR.
Penting: jangan pernah menggabungkan private key ke dalam rantai sertifikat. Key tersebut harus tetap berada dalam file terpisah, yang hanya dapat dibaca oleh root.
Langkah 1: Instal dukungan TLS (mod_ssl)
Instal mod_ssl, yang menambahkan dukungan TLS ke Apache dan menempatkan konfigurasi TLS default di /etc/httpd/conf.d/ssl.conf:
sudo dnf install -y mod_ssl
Pada sistem lama yang masih menggunakan package manager yum, jalankan sudo yum install -y mod_ssl sebagai gantinya.
Langkah 2: Tempatkan file SSL Anda
Salin private key ke /etc/pki/tls/private/ dan kunci izin aksesnya sehingga hanya root yang dapat membacanya:
sudo cp yourdomain.key /etc/pki/tls/private/
sudo chown root:root /etc/pki/tls/private/yourdomain.key
sudo chmod 600 /etc/pki/tls/private/yourdomain.key
Selanjutnya, buat file rantai lengkap dengan menggabungkan sertifikat Anda dan CA bundle, lalu tempatkan di /etc/pki/tls/certs/:
cat yourdomain.crt yourdomain.ca-bundle
| sudo tee /etc/pki/tls/certs/yourdomain-fullchain.crt > /dev/null
File rantai lengkap hanya boleh berisi sertifikat publik dan rantai perantara, tidak pernah boleh berisi private key.
Langkah 3: Konfigurasi virtual host TLS Apache
Anda dapat mengedit file default /etc/httpd/conf.d/ssl.conf yang dibuat oleh mod_ssl, atau (yang lebih rapi) membuat file khusus untuk situs Anda, misalnya /etc/httpd/conf.d/yourdomain.conf. Buka dengan editor teks:
sudo nano /etc/httpd/conf.d/yourdomain.conf
Tambahkan virtual host port 80 yang mengalihkan semua lalu lintas ke HTTPS, diikuti dengan virtual host port 443 yang aman berisi direktif SSL Anda:
<VirtualHost *:80>
ServerName yourdomain.com
ServerAlias www.yourdomain.com
Redirect permanent / https://yourdomain.com/
</VirtualHost>
<VirtualHost *:443>
ServerName yourdomain.com
ServerAlias www.yourdomain.com
DocumentRoot /var/www/yourdomain.com
SSLEngine on
SSLCertificateFile /etc/pki/tls/certs/yourdomain-fullchain.crt
SSLCertificateKeyFile /etc/pki/tls/private/yourdomain.key
</VirtualHost>
- SSLCertificateFile, file rantai lengkap Anda (sertifikat + perantara). Pada Apache 2.4.8 dan yang lebih baru, direktif tunggal ini menggantikan SSLCertificateChainFile yang sudah usang.
- SSLCertificateKeyFile, private key yang Anda buat bersama CSR.
Catatan tentang host default: file /etc/httpd/conf.d/ssl.conf milik mod_ssl menyertakan <VirtualHost _default_:443> sendiri dengan sertifikat self-signed. Ketika Anda menambahkan host *:443 per situs seperti di atas, permintaan yang cocok dengan ServerName Anda akan menggunakan sertifikat Anda, tetapi permintaan HTTPS yang tidak cocok (misalnya, mengakses server melalui alamat IP-nya) tetap akan kembali ke host self-signed default tersebut. Jika Anda tidak menginginkan fallback tersebut, beri komentar pada blok <VirtualHost _default_:443> di ssl.conf atau arahkan ke sertifikat Anda sendiri.
Catatan tentang pengerasan TLS: Apache pada RHEL 8 dan yang lebih baru mengikuti kebijakan kripto seluruh sistem, yang sudah menonaktifkan protokol usang. Untuk mengatur kebijakan di seluruh server, jalankan sudo update-crypto-policies --set DEFAULT (atau FUTURE untuk pengaturan yang lebih ketat). Jika Anda lebih suka mengunci protokol per virtual host, tambahkan SSLProtocol -all +TLSv1.2 +TLSv1.3 di dalam blok port 443.
Langkah 4: Uji konfigurasi Apache Anda
Selalu periksa sintaksnya sebelum melakukan reload, karena satu kesalahan ketik saja dapat membuat situs offline:
sudo apachectl configtest
Anda akan melihat Syntax OK. (Perintah sudo httpd -t melakukan hal yang sama.) Perbaiki kesalahan apa pun yang dilaporkan sebelum melanjutkan.
Langkah 5: Restart Apache
Terapkan perubahan dengan me-reload layanan httpd (reload mengaktifkan konfigurasi baru tanpa memutus koneksi yang sedang aktif):
sudo systemctl reload httpd
Jika httpd belum berjalan, jalankan dengan sudo systemctl enable --now httpd. Situs web Anda sekarang seharusnya sudah aktif melalui HTTPS. Untuk memverifikasi hasilnya dan mendapatkan laporan status instan, gunakan SSL Checker kami.
Catatan untuk CentOS lama (7 dan sebelumnya)
CentOS Linux 7, 6, dan 8 semuanya sudah melewati End of Life dan tidak lagi menerima pembaruan keamanan, jadi migrasikan ke distribusi keluarga RHEL yang masih didukung jika memungkinkan. Jika Anda harus bekerja pada server lama, prosesnya sama seperti di atas, dengan dua perbedaan:
- Package manager: CentOS 7 dan 6 menggunakan yum alih-alih dnf. Periksa apakah mod_ssl sudah terinstal dengan
rpm -qa | grep mod_ssl, dan jika belum, instal dengansudo yum install -y mod_ssl. - Apache lebih lama dari 2.4.8: hanya build yang sangat lama yang mendahului 2.4.8. Di sana, simpan sertifikat dan rantai dalam file terpisah dan tambahkan direktif ketiga, SSLCertificateChainFile, yang menunjuk ke CA bundle (bukan ke sertifikat Anda):
SSLCertificateFile /etc/pki/tls/certs/yourdomain.crt
SSLCertificateKeyFile /etc/pki/tls/private/yourdomain.key
SSLCertificateChainFile /etc/pki/tls/certs/yourdomain.ca-bundle
Pada Apache 2.4.8 dan yang lebih baru (yang mencakup setiap rilis yang saat ini didukung), gunakan SSLCertificateFile rantai lengkap tunggal yang lebih sederhana seperti ditunjukkan pada Langkah 3.
Di mana membeli sertifikat SSL untuk CentOS?
Tempat terbaik untuk membeli sertifikat SSL bagi server CentOS Anda adalah reseller SSL terpercaya seperti SSL Dragon. Harga kami termasuk yang terendah di pasaran, dan kami menawarkan diskon rutin serta penawaran menarik di seluruh rangkaian produk SSL kami, didukung oleh layanan pelanggan yang luar biasa. Semua sertifikat kami kompatibel dengan CentOS dan penerus keluarga RHEL-nya.
SSL Dragon menjaga keamanan data sensitif Anda, sehingga situs web atau bisnis Anda dapat berkembang secara online.
Pertanyaan yang Sering Diajukan
Hubungkan ke situs Anda dengan OpenSSL dan baca sertifikat yang disajikannya:echo | openssl s_client -connect yourdomain.com:443 -servername yourdomain.com 2>/dev/null | openssl x509 -noout -issuer -dates
Jika sertifikat terinstal, ini akan menampilkan penerbit dan tanggal masa berlakunya. Untuk memeriksa file sertifikat pada disk sebagai gantinya, jalankan openssl x509 -text -noout -in certificate.crt. Anda juga dapat mendaftar virtual host aktif Apache dengan sudo apachectl -S, atau membuka situs Anda di browser dan memeriksa ikon gembok.
Secara konvensi, sertifikat disimpan di /etc/pki/tls/certs/ dan private key di /etc/pki/tls/private/. Ini adalah default keluarga RHEL; Anda dapat menggunakan lokasi lain selama virtual host Anda menunjuk ke sana.
Modul TLS menginstal default-nya di /etc/httpd/conf.d/ssl.conf, dan konfigurasi Apache utama adalah /etc/httpd/conf/httpd.conf. Anda dapat menambahkan virtual host Anda ke ssl.conf, tetapi lebih rapi jika membuat file per situs seperti /etc/httpd/conf.d/yourdomain.conf. File .conf apa pun di /etc/httpd/conf.d/ akan dimuat secara otomatis. Log Apache berada di /var/log/httpd/.
Pada Apache 2.4.8 dan yang lebih baru (setiap rilis keluarga RHEL yang saat ini didukung), ya: gabungkan sertifikat dan CA bundle Anda menjadi satu file rantai lengkap dan arahkan SSLCertificateFile ke sana. Direktif SSLCertificateChainFile yang terpisah sudah usang dan hanya diperlukan pada build Apache yang lebih lama dari 2.4.8.
OpenSSL sudah terinstal secara default pada CentOS dan setiap distribusi Linux besar lainnya, jadi Anda biasanya tidak perlu menginstalnya. Jika hilang, tambahkan dengan sudo dnf install -y openssl (atau sudo yum install -y openssl pada CentOS 7 dan sebelumnya). Pelajari lebih lanjut tentang OpenSSL dan baris perintahnya.
Kesimpulan
Menginstal sertifikat SSL di CentOS atau RHEL dengan Apache pada dasarnya adalah menginstal mod_ssl, menempatkan private key dan sertifikat rantai lengkap Anda di bawah /etc/pki/tls/, mengonfigurasi blok <VirtualHost *:443> di /etc/httpd/conf.d/, menguji dengan sudo apachectl configtest, dan me-reload dengan sudo systemctl reload httpd. Butuh sertifikat terlebih dahulu? Jelajahi sertifikat SSL kami.
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
