Topik ini menjelaskan cara memasang sertifikat domain tunggal, multi-domain, atau wildcard pada server Apache. Ini mencakup cara mengunduh dan mengunggah file sertifikat, mengonfigurasi parameter sertifikat, serta memverifikasi pemasangan.
Jika Anda memiliki pertanyaan, hubungi manajer akun Anda untuk bantuan.
Catatan penggunaan
Sebelum memulai, pastikan Anda memenuhi persyaratan berikut:
Status Sertifikat: Sertifikat SSL Anda diterbitkan oleh otoritas sertifikat (CA) tepercaya. Jika sertifikat About to Expire atau Expired, perpanjang terlebih dahulu dengan mengikuti panduan di Perpanjangan Sertifikat SSL.
Pencocokan Nama Domain: Pastikan sertifikat sesuai dengan semua nama domain yang ingin diamankan. Untuk menambah atau memodifikasi domain, lihat Tambah dan Ganti Nama Domain.
Nama domain yang cocok secara tepat: Hanya berlaku untuk domain yang ditentukan.
example.comhanya melindungiexample.com.www.example.comhanya melindungiwww.example.com.
Nama domain wildcard: Hanya berlaku untuk subdomain tingkat pertamanya.
*.example.comberlaku untuk subdomain tingkat pertama sepertiwww.example.comdana.example.com.*.example.comtidak melindungi domain rootexample.comatau subdomain multi-level sepertia.b.example.com.
CatatanUntuk melindungi subdomain multi-level, bidang Bound Domains harus berisi domain yang tepat, seperti
a.b.example.com, atau domain wildcard yang sesuai, seperti*.b.example.com.Izin Server: Anda memerlukan akun
rootatau akun dengan hak istimewasudo.Resolusi DNS: Rekaman DNS domain dikonfigurasi dan diarahkan ke alamat IP publik server.
Prosedur
Langkah 1: Persiapkan file sertifikat
Kunjungi halaman Manajemen Sertifikat SSL. Di kolom Actions untuk sertifikat target, klik Download Certificate. Pada tab Download, unduh sertifikat dengan Server Type adalah Apache.
Ekstrak paket sertifikat yang diunduh:
Jika Anda memiliki file sertifikat (<bound_domain_name>_public.crt), file rantai sertifikat (<bound_domain_name>_chain.crt), dan file kunci privat (<bound_domain_name>.key), simpan mereka di lokasi yang aman karena diperlukan untuk penerapan di masa mendatang.
Jika paket hanya berisi file sertifikat (<bound_domain_name>_public.crt) dan file rantai sertifikat (<bound_domain_name>_chain.crt) tetapi tidak ada file kunci privat (<bound_domain_name>.key), Anda harus menerapkannya dengan file kunci privat yang disimpan secara lokal.
CatatanJika Anda menggunakan alat seperti OpenSSL atau Keytool untuk menghasilkan file Permintaan Penandatanganan Sertifikat (CSR) saat mengajukan sertifikat, file kunci privat hanya disimpan secara lokal. Paket sertifikat yang diunduh tidak termasuk kunci privat. Jika kunci privat hilang, sertifikat tidak dapat digunakan. Anda harus membeli sertifikat resmi lagi dan menghasilkan CSR dan kunci privat baru.
Unggah file sertifikat yang diekstrak, file rantai sertifikat, dan file kunci privat ke server, dan simpan di direktori eksternal yang aman, seperti
/etc/ssl/cert.CatatanAnda dapat menggunakan fitur unggah file lokal dari alat login jarak jauh, seperti PuTTY, XShell, atau WinSCP, untuk mengunggah file. Jika Anda menggunakan instans Elastic Compute Service, untuk informasi lebih lanjut tentang cara mengunggah file, lihat Unggah atau Unduh File.
Langkah 2: Konfigurasikan sistem dan lingkungan jaringan
Pastikan grup keamanan dan firewall sistem Anda mengizinkan lalu lintas masuk pada port HTTPS (443).
Jalankan perintah berikut di terminal server untuk memeriksa apakah port 443 terbuka:
RHEL/CentOS
command -v nc > /dev/null 2>&1 || sudo yum install -y nc # Ganti <your_server_public_ip> dengan alamat IP publik server Anda yang sebenarnya. sudo ss -tlnp | grep -q ':443 ' || sudo nc -l 443 & sleep 1; nc -w 3 -vz <your_server_public_ip> 443Jika outputnya adalah
Ncat: Connected to <Alamat IP publik server saat ini>:443, port 443 terbuka. Jika tidak, buka port 443 di grup keamanan dan firewall.Debian/Ubuntu
command -v nc > /dev/null 2>&1 || sudo apt-get install -y netcat # Ganti <your_server_public_ip> dengan alamat IP publik server Anda yang sebenarnya. sudo ss -tlnp | grep -q ':443 ' || sudo nc -l -p 443 & sleep 1; nc -w 3 -vz <your_server_public_ip> 443Jika outputnya adalah
Connection to <alamat IP publik server saat ini> port [tcp/https] succeeded!atau[<alamat IP publik server saat ini>] 443 (https) open, port 443 terbuka. Jika tidak, buka port 443 di grup keamanan dan firewall.Buka port 443 di konfigurasi grup keamanan Anda.
PentingJika server Anda diterapkan di platform cloud, pastikan grup keamanannya mengizinkan lalu lintas masuk pada port TCP 443. Jika tidak, layanan tidak akan dapat diakses. Langkah-langkah berikut menggunakan Alibaba Cloud Elastic Compute Service (ECS) sebagai contoh. Untuk platform cloud lainnya, lihat dokumentasi resmi mereka.
Kunjungi halaman Instans Layanan Komputasi Elastis, klik nama instans target untuk pergi ke halaman detail instans. Lihat Tambah Aturan Grup Keamanan untuk menambahkan aturan baru di Security Group dengan Action diatur ke Allow, Protocol Type ke Custom TCP, Destination Port Range ke HTTPS(443), dan Authorization Object ke All IPv4 Addresses.
Buka port 443 di firewall Anda.
Jalankan perintah berikut untuk mengidentifikasi layanan firewall aktif di sistem Anda:
if command -v systemctl >/dev/null 2>&1 && systemctl is-active --quiet firewalld; then echo "firewalld" elif command -v ufw >/dev/null 2>&1 && sudo ufw status | grep -qw active; then echo "ufw" elif command -v nft >/dev/null 2>&1 && sudo nft list ruleset 2>/dev/null | grep -q 'table'; then echo "nftables" elif command -v systemctl >/dev/null 2>&1 && systemctl is-active --quiet iptables; then echo "iptables" elif command -v iptables >/dev/null 2>&1 && sudo iptables -L 2>/dev/null | grep -qE 'REJECT|DROP|ACCEPT'; then echo "iptables" else echo "none" fiJika outputnya adalah
none, tidak ada tindakan lebih lanjut yang diperlukan. Jika tidak, jalankan perintah yang sesuai berdasarkan output (firewalld,ufw,nftables, atauiptables) untuk membuka port 443:firewalld
sudo firewall-cmd --permanent --add-port=443/tcp && sudo firewall-cmd --reloadufw
sudo ufw allow 443/tcpnftables
sudo nft add table inet filter 2>/dev/null sudo nft add chain inet filter input '{ type filter hook input priority 0; }' 2>/dev/null sudo nft add rule inet filter input tcp dport 443 counter accept 2>/dev/nulliptables
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPTUntuk memastikan aturan iptables bertahan setelah reboot sistem, jalankan perintah berikut:
RHEL/CentOS
sudo yum install -y iptables-services sudo service iptables saveDebian/Ubuntu
sudo apt-get install -y iptables-persistent sudo iptables-save | sudo tee /etc/iptables/rules.v4 >/dev/null
Langkah 3: Pasang sertifikat pada server Apache
Pastikan modul SSL diaktifkan.
Jalankan perintah berikut untuk memeriksa apakah modul
mod_ssl.soberhasil diinstal:RHEL/CentOS
httpd -M | grep 'ssl_module'Debian/Ubuntu
apachectl -M | grep 'ssl_module'Jika modul terinstal dan dimuat, Anda akan melihat output serupa dengan berikut, yang menunjukkan bahwa ssl_module adalah modul bersama:
ssl_module (shared)Jika modul belum diinstal, jalankan perintah yang sesuai untuk distribusi Linux Anda untuk menginstal modul mod_ssl.so dan mengaktifkan fitur SSL.
RHEL/CentOS
sudo yum install -y mod_ssl # Untuk versi baru (8.0+): sudo dnf install -y mod_sslDebian/Ubuntu
# Aktifkan modul SSL (biasanya sudah terinstal) sudo a2enmod ssl
Jalankan perintah berikut untuk memeriksa versi Apache Anda.
RHEL/CentOS
httpd -vDebian/Ubuntu
apache2 -vBerdasarkan versi Apache Anda, modifikasi file konfigurasi.
Apache 2.4.8 dan yang lebih baru (Direkomendasikan)
Gabungkan file sertifikat
Jalankan perintah berikut untuk menggabungkan file sertifikat yang diekstrak (
domain_name_public.crt) dan file rantai sertifikat (domain_name_chain.crt) menjadi satu file.# Gabungkan isi file rantai sertifikat ke file sertifikat server untuk membuat file rantai sertifikat lengkap. cat domain_name_public.crt domain_name_chain.crt > domain_name_fullchain.pemSetelah digabungkan, Anda akan memiliki dua file:
domain_name_fullchain.pemdandomain_name.key.Modifikasi file konfigurasi
Edit file konfigurasi host virtual SSL.
CatatanFile konfigurasi biasanya terletak di
/etc/httpd/conf.d/ssl.confatau/etc/apache2/sites-available/your-site-ssl.conf.vim /etc/httpd/conf.d/ssl.confTemukan parameter terkait SSL dan modifikasi konfigurasi sertifikat.
<VirtualHost *:443> # Ganti example.com dengan nama domain yang ingin Anda amankan. ServerName example.com # File sertifikat. Gunakan path ke file sertifikat gabungan. SSLCertificateFile /etc/ssl/cert/domain_name_fullchain.pem # File kunci privat. Ganti dengan path ke file kunci privat Anda yang sebenarnya. SSLCertificateKeyFile /etc/ssl/cert/domain_name.key # Konfigurasi lainnya # ... </VirtualHost>
Apache 2.4.7 dan yang lebih lama
Persiapkan file sertifikat
Pastikan direktori sertifikat berisi tiga file berikut: file sertifikat (
domain_name_public.crt), file rantai sertifikat (domain_name_chain.crt), dan file kunci privat (domain_name.key).Modifikasi file konfigurasi
Edit file konfigurasi host virtual SSL.
CatatanFile konfigurasi biasanya terletak di
/etc/httpd/conf.d/ssl.confatau/etc/apache2/sites-available/your-site-ssl.conf.vim /etc/httpd/conf.d/ssl.confTemukan parameter terkait SSL dan modifikasi konfigurasi sertifikat.
<VirtualHost *:443> # Ganti example.com dengan nama domain yang terikat pada sertifikat Anda. ServerName example.com # File sertifikat. Ganti dengan path ke file sertifikat Anda. SSLCertificateFile /etc/ssl/cert/domain_name_public.crt # File rantai sertifikat (ditentukan secara terpisah). Ganti dengan path ke file rantai sertifikat Anda. SSLCertificateChainFile /etc/ssl/cert/domain_name_chain.crt # File kunci privat. Ganti dengan path ke file kunci privat Anda. SSLCertificateKeyFile /etc/ssl/cert/domain_name.key # Konfigurasi lainnya # ... </VirtualHost>
Periksa apakah sintaks file konfigurasi benar. Jika outputnya adalah
Syntax OK, sintaks benar dan Anda dapat melanjutkan.RHEL/CentOS
sudo httpd -tDebian/Ubuntu
sudo apache2ctl -tMuat ulang atau mulai ulang layanan Apache.
RHEL/CentOS
# Gunakan reload (muat ulang dengan lancar, direkomendasikan). sudo systemctl reload httpd # Gunakan restart (paksa mulai ulang). sudo systemctl restart httpdDebian/Ubuntu
# Gunakan reload (muat ulang dengan lancar, direkomendasikan). sudo systemctl reload apache2 # Gunakan restart (paksa mulai ulang). sudo systemctl restart apache2
Langkah 4: Verifikasi pemasangan
Akses domain Anda melalui HTTPS di browser web. Misalnya,
https://yourdomain.com. Gantiyourdomain.comdengan domain Anda yang sebenarnya.Jika ikon gembok muncul di bilah alamat browser, sertifikat berhasil diterapkan. Jika Anda mengalami kesalahan akses atau ikon gembok tidak muncul, bersihkan cache browser Anda atau coba lagi dalam mode penyamaran (privasi).

Mulai versi 117, ikon
di bilah alamat Chrome telah diganti dengan ikon
baru. Klik ikon ini untuk melihat informasi gembok.
Jika Anda masih memiliki masalah, lihat bagian FAQ untuk pemecahan masalah.
Tayang
Saat menerapkan ke lingkungan produksi, ikuti praktik terbaik berikut untuk meningkatkan keamanan, stabilitas, dan kemudahan pemeliharaan:
Jalankan sebagai Pengguna Non-Administrator:
Buat pengguna sistem khusus dengan hak istimewa rendah untuk aplikasi. Jangan pernah menjalankan aplikasi dengan akun yang memiliki hak administrator.
CatatanPendekatan yang direkomendasikan adalah mengonfigurasi SSL di lapisan gateway. Ini melibatkan pemasangan sertifikat pada Server Load Balancer (SLB). Gateway akan mengakhiri lalu lintas HTTPS dan meneruskan lalu lintas HTTP yang telah didekripsi ke aplikasi backend.
Kelola Kredensial secara Eksternal:
Jangan pernah menyematkan kata sandi atau informasi sensitif lainnya secara hard-code dalam kode atau file konfigurasi Anda. Gunakan variabel lingkungan, Vault, atau layanan manajemen kunci dari penyedia cloud untuk menyuntikkan kredensial.
Paksa Pengalihan HTTP ke HTTPS:
Alihkan semua lalu lintas HTTP ke HTTPS untuk mencegah serangan man-in-the-middle.
Konfigurasikan Protokol TLS Modern:
Nonaktifkan protokol lama dan tidak aman (seperti SSLv3, TLSv1.0, dan TLSv1.1) dalam konfigurasi server Anda. Aktifkan hanya TLSv1.2 dan TLSv1.3.
Pantau Sertifikat dan Otomatisasi Pembaruan:
Setelah menerapkan sertifikat, aktifkan pemantauan domain. Alibaba Cloud secara otomatis memeriksa periode validitas sertifikat dan mengirimkan pengingat pembaruan sebelum kedaluwarsa untuk membantu Anda menghindari gangguan layanan. Untuk informasi lebih lanjut, lihat Beli dan Aktifkan Pemantauan Nama Domain Publik.
FAQ
Mengapa sertifikat saya tidak berfungsi atau HTTPS tidak dapat diakses setelah pemasangan atau pembaruan?
Masalah ini sering disebabkan oleh salah satu masalah konfigurasi berikut. Periksa mereka secara berurutan:
Port 443 Diblokir: Grup keamanan atau firewall server tidak memiliki port 443 yang terbuka. Lihat Konfigurasikan Sistem dan Lingkungan Jaringan.
Ketidakcocokan Domain: Domain yang Anda akses tidak terdaftar dalam Bound Domains sertifikat. Lihat Pencocokan Nama Domain.
Apache atau Apache2 tidak dimulai ulang atau dimuat ulang: Layanan Apache atau Apache2 tidak dimulai ulang atau dimuat ulang setelah file konfigurasi dimodifikasi. Lihat Muat Ulang atau Mulai Ulang Layanan Apache.
Konfigurasi Sertifikat Salah: File sertifikat tidak diganti dengan benar, atau path sertifikat salah dalam konfigurasi Apache. Verifikasi bahwa file konfigurasi Apache dan file sertifikat adalah yang terbaru dan valid.
Sertifikat Hilang di Layanan Lain: Jika domain Anda menggunakan layanan seperti Content Delivery Network (CDN), Server Load Balancer (SLB), atau Web Application Firewall (WAF), sertifikat juga harus dipasang di layanan tersebut. Lihat Lokasi Penerapan Sertifikat Saat Lalu Lintas Melewati Beberapa Layanan Alibaba Cloud untuk menyelesaikan pengaturan.
Penerapan Tidak Lengkap di Beberapa Server: Jika DNS domain Anda diarahkan ke beberapa server, sertifikat harus dipasang di semuanya.
Untuk pemecahan masalah lebih lanjut, lihat Selesaikan Masalah Penerapan Sertifikat Berdasarkan Pesan Kesalahan Browser dan Panduan Pemecahan Masalah Penerapan Sertifikat SSL.
Mengapa browser melaporkan kesalahan "nama sertifikat tidak cocok" atau "NET::ERR_CERT_COMMON_NAME_INVALID"?
Nama domain yang Anda akses tidak sesuai dengan nama domain yang terikat pada sertifikat. Untuk informasi lebih lanjut, lihat Pencocokan Nama Domain.
Apa cara yang benar untuk memperbarui atau mengganti sertifikat SSL di Apache?
Cadangkan File Lama: Cadangkan file sertifikat (
.crt) dan file kunci privat (.key) yang ada di server.Dapatkan File Baru: Unduh file sertifikat dan kunci privat baru dari konsol Layanan Manajemen Sertifikat Anda.
Ganti File: Unggah file baru ke server Anda, menimpa yang lama. Pastikan file baru memiliki path dan nama file yang persis sama seperti yang ditentukan dalam konfigurasi Apache Anda.
Mulai Ulang atau Muat Ulang Apache: Mulai ulang atau muat ulang layanan Apache untuk menerapkan sertifikat baru.