全部产品
Search
文档中心

Certificate Management Service:Pasang Sertifikat SSL pada Server Apache (Linux)

更新时间:Oct 25, 2025

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.

Penting

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.com hanya melindungi example.com.

      • www.example.com hanya melindungi www.example.com.

    • Nama domain wildcard: Hanya berlaku untuk subdomain tingkat pertamanya.

      • *.example.com berlaku untuk subdomain tingkat pertama seperti www.example.com dan a.example.com.

      • *.example.com tidak melindungi domain root example.com atau subdomain multi-level seperti a.b.example.com.

    Catatan

    Untuk 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 root atau akun dengan hak istimewa sudo.

  • Resolusi DNS: Rekaman DNS domain dikonfigurasi dan diarahkan ke alamat IP publik server.

Prosedur

Langkah 1: Persiapkan file sertifikat

  1. Kunjungi halaman Manajemen Sertifikat SSL. Di kolom Actions untuk sertifikat target, klik Download Certificate. Pada tab Download, unduh sertifikat dengan Server Type adalah Apache.

  2. 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.

      Catatan

      Jika 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.

  3. 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.

    Catatan

    Anda 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).

  1. 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> 443

    Jika 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> 443

    Jika 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.

  2. Buka port 443 di konfigurasi grup keamanan Anda.

    Penting

    Jika 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.

  3. 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"
    fi

    Jika outputnya adalah none, tidak ada tindakan lebih lanjut yang diperlukan. Jika tidak, jalankan perintah yang sesuai berdasarkan output (firewalld, ufw, nftables, atau iptables) untuk membuka port 443:

    firewalld

    sudo firewall-cmd --permanent --add-port=443/tcp && sudo firewall-cmd --reload

    ufw

    sudo ufw allow 443/tcp

    nftables

    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/null

    iptables

    sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT

    Untuk memastikan aturan iptables bertahan setelah reboot sistem, jalankan perintah berikut:

    RHEL/CentOS
    sudo yum install -y iptables-services
    sudo service iptables save
    Debian/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

  1. Pastikan modul SSL diaktifkan.

    1. Jalankan perintah berikut untuk memeriksa apakah modul mod_ssl.so berhasil 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)
    2. 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_ssl

      Debian/Ubuntu

      # Aktifkan modul SSL (biasanya sudah terinstal)
      sudo a2enmod ssl
  2. Jalankan perintah berikut untuk memeriksa versi Apache Anda.

    RHEL/CentOS

    httpd -v

    Debian/Ubuntu

    apache2 -v
  3. Berdasarkan 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.pem

    Setelah digabungkan, Anda akan memiliki dua file: domain_name_fullchain.pem dan domain_name.key.

    Modifikasi file konfigurasi

    • Edit file konfigurasi host virtual SSL.

      Catatan

      File konfigurasi biasanya terletak di /etc/httpd/conf.d/ssl.conf atau /etc/apache2/sites-available/your-site-ssl.conf.

      vim /etc/httpd/conf.d/ssl.conf
    • Temukan 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.

      Catatan

      File konfigurasi biasanya terletak di /etc/httpd/conf.d/ssl.conf atau /etc/apache2/sites-available/your-site-ssl.conf.

      vim /etc/httpd/conf.d/ssl.conf
    • Temukan 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>
  4. Periksa apakah sintaks file konfigurasi benar. Jika outputnya adalah Syntax OK, sintaks benar dan Anda dapat melanjutkan.

    RHEL/CentOS

    sudo httpd -t

    Debian/Ubuntu

    sudo apache2ctl -t
  5. Muat 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 httpd

    Debian/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

  1. Akses domain Anda melalui HTTPS di browser web. Misalnya, https://yourdomain.com. Ganti yourdomain.com dengan domain Anda yang sebenarnya.

  2. 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).

    image

    Mulai versi 117, ikon image di bilah alamat Chrome telah diganti dengan ikon image baru. Klik ikon ini untuk melihat informasi gembok.

Catatan

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.

    Catatan

    Pendekatan 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.

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?

  1. Cadangkan File Lama: Cadangkan file sertifikat (.crt) dan file kunci privat (.key) yang ada di server.

  2. Dapatkan File Baru: Unduh file sertifikat dan kunci privat baru dari konsol Layanan Manajemen Sertifikat Anda.

  3. 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.

  4. Mulai Ulang atau Muat Ulang Apache: Mulai ulang atau muat ulang layanan Apache untuk menerapkan sertifikat baru.