All Products
Search
Document Center

Certificate Management Service:Instal Sertifikat SSL pada server Tomcat (Linux)

Last Updated:Apr 01, 2026

Instal Sertifikat SSL dalam format Java KeyStore (JKS) atau PFX/PKCS#12 pada server Tomcat yang menjalankan Linux untuk mengaktifkan HTTPS. Panduan ini mencakup pengunduhan sertifikat, konfigurasi server.xml Tomcat, pembukaan port 443, dan verifikasi penerapan.

Catatan penggunaan

Sebelum memulai, pastikan Anda memenuhi persyaratan berikut:

  • Status sertifikat: Anda memiliki Sertifikat SSL yang diterbitkan oleh Otoritas Sertifikat tepercaya. Jika sertifikat akan segera kedaluwarsa atau telah kedaluwarsa, perbarui terlebih dahulu Sertifikat SSL tersebut.

  • Pencocokan nama domain: Pastikan sertifikat mencakup semua nama domain yang ingin Anda amankan. Untuk menambah atau mengubah nama domain, Anda dapat Membeli sertifikat komersial atau Menambahkan dan mengganti nama domain.

    • Nama domain yang cocok persis: 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 pertama.

      • *.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 mencocokkan 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 nama domain: Rekaman DNS domain telah dikonfigurasi dan di-resolve ke Alamat IP publik server.

Mulai cepat

Proses instalasi terdiri dari empat langkah:

  1. Unduh paket sertifikat dari Konsol Layanan Manajemen Sertifikat dan unggah file ke server Anda.

  2. Buka port 443 di security group dan firewall Anda.

  3. Edit server.xml untuk menambahkan konektor SSL, lalu restart Tomcat.

  4. Buka https://yourdomain di browser dan pastikan ikon gembok muncul.

Prasyarat

Sebelum memulai, pastikan Anda memiliki:

  • Sertifikat SSL yang diterbitkan oleh Otoritas Sertifikat (CA) tepercaya. Jika sertifikat akan segera kedaluwarsa atau telah kedaluwarsa, perbarui terlebih dahulu.

  • Sertifikat yang sesuai dengan semua nama domain yang ingin Anda amankan: Untuk menambah atau mengubah nama domain, beli sertifikat komersial atau tambahkan dan ganti nama domain.

    • Nama domain yang cocok persis: Hanya berlaku untuk domain yang ditentukan. Misalnya, example.com hanya melindungi example.com, dan www.example.com hanya melindungi www.example.com.

    • Nama domain wildcard: Hanya berlaku untuk subdomain tingkat pertama. Misalnya, *.example.com mencakup www.example.com dan a.example.com, tetapi tidak mencakup domain root example.com atau subdomain multi-level seperti a.b.example.com.

    Untuk mengamankan subdomain multi-level, bidang Bound Domains harus berisi subdomain yang tepat (misalnya, a.b.example.com) atau domain wildcard yang sesuai (misalnya, *.b.example.com).
  • Akun root atau akun dengan hak istimewa sudo di server.

  • Rekaman DNS untuk domain yang di-resolve ke Alamat IP publik server.

Langkah 1: Siapkan file sertifikat

  1. Buka halaman SSL Certificates. Di kolom Actions sertifikat target, klik Download Certificate. Pada tab Download, pilih Tomcat sebagai Server Type lalu unduh paket tersebut.

  2. Ekstrak paket yang diunduh. Paket tersebut berisi file sertifikat (.pfx atau .jks) dan file password (.txt).

    Pilih format sertifikat yang sesuai dengan lingkungan Anda: - JKS (Java KeyStore): Format keystore khusus Java. Pilih JKS jika tool dan skrip Anda sudah mendukungnya. - PFX/PKCS#12: Format universal yang didukung oleh Java dan platform lain. Pilih PFX untuk integrasi lintas tumpukan teknologi atau sistem non-Java.
  3. Unggah file sertifikat (.pfx atau .jks) dan file password (.txt) ke server. Simpan di direktori yang aman, seperti /etc/ssl/cert/. Gunakan fitur unggah file dari tool login remote seperti PuTTY, Xshell, atau WinSCP untuk mentransfer file. Jika Anda menggunakan instans Elastic Compute Service (ECS) Alibaba Cloud, lihat Unggah atau unduh file untuk instruksi.

    Penting

    Setelah diunggah, batasi akses ke file sertifikat. Izinkan hanya pengguna Tomcat yang dapat membacanya:

    sudo chown tomcat:tomcat /etc/ssl/cert/domain_name.* sudo chmod 400 /etc/ssl/cert/domain_name.*

Langkah 2: Buka port 443

Tomcat memerlukan port 443 terbuka di dua level: security group cloud dan firewall OS.

Buka port 443 di security group

Jika server Anda berjalan di ECS Alibaba Cloud, tambahkan aturan masuk untuk mengizinkan TCP port 443:

  1. Buka instans Elastic Compute Service (ECS) dan klik nama instans target.

  2. Di bagian Security Group Details, tambahkan aturan security group dengan pengaturan berikut lalu simpan: Untuk platform cloud lain, rujuk dokumentasi mereka.

    FieldValue
    ActionAllow
    ProtocolCustom TCP
    Destination (Current Instance)HTTPS (443)
    Source0.0.0.0/0 (anywhere)

Buka port 443 di firewall OS

Pertama, periksa apakah port 443 sudah dapat dijangkau. Jalankan perintah berikut sesuai distribusi Linux Anda:

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.
sudo ss -tlnp | grep -q ':443 ' || sudo nc -l 443 & sleep 1; nc -w 3 -vz <your_server_public_ip> 443

Jika output berisi Ncat: Connected to <your_server_public_ip>:443, port 443 terbuka dan tidak diperlukan tindakan lebih lanjut.

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.
sudo ss -tlnp | grep -q ':443 ' || sudo nc -l -p 443 & sleep 1; nc -w 3 -vz <your_server_public_ip> 443

Jika output berisi Connection to <your_server_public_ip> port [tcp/https] succeeded! atau [<your_server_public_ip>] 443 (https) open, port 443 terbuka dan tidak diperlukan tindakan lebih lanjut.

Jika port 443 tidak terbuka, identifikasi firewall aktif dan buka port tersebut:

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 output adalah none, tidak ada firewall aktif. Jika tidak, jalankan perintah sesuai firewall Anda:

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 mempertahankan aturan iptables setelah reboot:

  • 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: Konfigurasi Tomcat

Sintaksis konfigurasi sedikit berbeda antar versi Tomcat. Ikuti bagian yang sesuai dengan versi Anda.

Tomcat 9

  1. Dari direktori root Tomcat, buka server.xml:

    sudo vim ./conf/server.xml
  2. Konfigurasikan konektor pengalihan HTTP. Perbarui konektor HTTP yang ada untuk mengalihkan trafik ke port 443:

    <Connector port="80" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="443"
               maxParameterCount="1000"
               />
  3. Tambahkan konektor SSL. Pilih blok yang sesuai dengan format sertifikat Anda:

    Format PFX

    <Connector port="443"
               protocol="org.apache.coyote.http11.Http11NioProtocol"
               maxThreads="150"
               SSLEnabled="true"
               maxParameterCount="1000"
               >
        <SSLHostConfig>
            <Certificate certificateKeystoreFile="/etc/ssl/cert/domain_name.pfx"
                         certificateKeystorePassword="<password-from-pfx-password.txt>"
                         type="RSA" />
        </SSLHostConfig>
    </Connector>

    Format JKS

    <Connector port="443"
               protocol="org.apache.coyote.http11.Http11NioProtocol"
               maxThreads="150"
               SSLEnabled="true"
               maxParameterCount="1000"
               >
        <SSLHostConfig>
            <Certificate certificateKeystoreFile="/etc/ssl/cert/domain_name.jks"
                         certificateKeystorePassword="<password-from-jks-password.txt>"
                         type="RSA" />
        </SSLHostConfig>
    </Connector>

    Ganti path certificateKeystoreFile dengan path aktual ke file sertifikat Anda, dan ganti nilai certificateKeystorePassword dengan isi file password yang sesuai.

  4. Perbarui `redirectPort` konektor AJP menjadi 443:

    <Connector protocol="AJP/1.3"
               address="::1"
               port="8009"
               redirectPort="443"
               maxParameterCount="1000"
               />

Tomcat 8.5

Tomcat 8.5 mengharuskan Anda menentukan implementasi JSSE secara manual. Sintaksis konektor sama dengan Tomcat 9 di atas. Tambahkan konektor SSL menggunakan blok PFX atau JKS dari bagian Tomcat 9.

Tomcat 7

Tomcat 7 menggunakan atribut SSL inline pada elemen Connector alih-alih SSLHostConfig bersarang.

Format PFX

<Connector port="443"
           protocol="HTTP/1.1"
           SSLEnabled="true"
           scheme="https"
           secure="true"
           keystoreFile="/etc/ssl/cert/domain_name.pfx"
           keystoreType="PKCS12"
           keystorePass="<password-from-pfx-password.txt>"
           clientAuth="false"
           SSLProtocol="TLSv1.1+TLSv1.2+TLSv1.3"
           ciphers="TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_256_CBC_SHA256"/>

Format JKS

<Connector port="443"
           protocol="HTTP/1.1"
           connectionTimeout="20000"
           redirectport="8443"
           maxParameterCount="1000"
           SSLEnabled="true"
           scheme="https"
           secure="true"
           keystoreFile="/etc/ssl/cert/domain_name.jks"
           keystoreType="JKS"
           keystorePass="<password-from-jks-password.txt>"
           clientAuth="false"
           SSLProtocol="TLSv1.1+TLSv1.2+TLSv1.3"
           ciphers="TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_256_CBC_SHA256"/>

(Opsional) Paksa pengalihan HTTP ke HTTPS

Untuk mengalihkan semua permintaan HTTP ke HTTPS secara otomatis, tambahkan blok berikut di bagian bawah conf/web.xml, tepat sebelum tag penutup </web-app>:

<security-constraint>
    <web-resource-collection>
        <web-resource-name>SSL</web-resource-name>
        <url-pattern>/*</url-pattern>
    </web-resource-collection>
    <user-data-constraint>
        <transport-guarantee>CONFIDENTIAL</transport-guarantee>
    </user-data-constraint>
</security-constraint>

Validasi dan restart Tomcat

  1. Validasi konfigurasi. Dari direktori bin Tomcat, jalankan:

    ./configtest.sh

    Jika output adalah Configuration file test successful, konfigurasi valid. Jika muncul error, perbaiki konfigurasi berdasarkan pesan error lalu jalankan validasi ulang.

  2. Restart Tomcat untuk menerapkan perubahan:

    sudo ./shutdown.sh
    sudo ./startup.sh

Langkah 4: Verifikasi penerapan

Buka browser dan navigasi ke https://yourdomain (ganti yourdomain dengan domain aktual Anda).

Ikon gembok di bilah alamat menegaskan bahwa sertifikat telah terpasang dengan benar.

image

Mulai dari versi 117, Chrome mengganti ikon image dengan ikon image baru. Klik ikon ini untuk melihat detail sertifikat.

Jika ikon gembok tidak muncul atau Anda melihat error akses, bersihkan cache browser atau coba lagi dalam mode penyamaran. Lihat bagian FAQ jika masalah tetap berlanjut.

Meluncurkan ke produksi

Saat menerapkan ke lingkungan produksi, terapkan praktik berikut:

  • Jalankan Tomcat sebagai pengguna non-root. Buat akun sistem berhak rendah khusus untuk Tomcat dan jangan pernah menjalankannya sebagai root.

    Pertimbangkan untuk mengakhiri SSL di lapisan gerbang — terapkan sertifikat pada Server Load Balancer (SLB) atau reverse proxy seperti Nginx. Gerbang menangani terminasi HTTPS dan meneruskan HTTP biasa ke backend, yang menyederhanakan manajemen sertifikat di beberapa server.
  • Jauhkan kredensial dari file konfigurasi. Gunakan Variabel lingkungan, secrets manager, atau layanan manajemen kunci cloud untuk menyuntikkan password keystore saat waktu proses alih-alih hardcoding di server.xml.

  • Paksa pengalihan HTTP ke HTTPS. Alihkan semua trafik HTTP ke HTTPS untuk mencegah serangan man-in-the-middle (lihat langkah opsional di Langkah 3).

  • Nonaktifkan protokol TLS lawas. Nonaktifkan SSLv3, TLS 1.0, dan TLS 1.1 dalam konfigurasi Tomcat Anda. Aktifkan hanya TLS 1.2 dan TLS 1.3.

  • Pantau masa berlaku sertifikat. Setelah penerapan, aktifkan pemantauan domain di Layanan Manajemen Sertifikat. Alibaba Cloud memeriksa validitas sertifikat dan mengirimkan pengingat perpanjangan sebelum kedaluwarsa. Untuk instruksi, lihat Beli dan aktifkan pemantauan nama domain publik.

FAQ

HTTPS tidak dapat diakses setelah instalasi atau pembaruan sertifikat

Periksa hal berikut secara berurutan:

  1. Port 443 diblokir. Verifikasi bahwa security group dan firewall OS mengizinkan lalu lintas inbound TCP pada port 443. Lihat Langkah 2.

  2. Ketidakcocokan domain. Pastikan domain yang Anda akses tercantum di bidang Bound Domains sertifikat. Lihat bagian Prasyarat untuk aturan pencocokan domain.

  3. Tomcat belum direstart. Konfigurasi baru hanya berlaku setelah Tomcat direstart. Lihat langkah validasi dan restart di Langkah 3.

  4. Path atau file sertifikat salah. Periksa bahwa certificateKeystoreFile (atau keystoreFile) di server.xml mengarah ke file sertifikat yang benar dan mutakhir.

  5. Sertifikat tidak ada di layanan hulu. Jika domain Anda melewati 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 trafik melewati beberapa Layanan Alibaba Cloud.

  6. Penerapan multi-server tidak lengkap. Jika DNS domain di-resolve ke beberapa server, instal sertifikat di semua server tersebut.

Untuk troubleshooting lebih lanjut, lihat Selesaikan masalah penerapan sertifikat berdasarkan pesan error browser dan Panduan troubleshooting penerapan Sertifikat SSL.

Tomcat gagal start, dan log menampilkan error "Keystore was tampered with, or password was incorrect"

Hampir selalu berarti password di server.xml tidak sesuai dengan file keystore. Untuk memperbaikinya:

  1. Buka file password (.txt) dari paket sertifikat dan salin isinya secara tepat, tanpa spasi atau baris baru di akhir.

  2. Perbarui atribut certificateKeystorePassword (atau keystorePass) di server.xml dengan nilai tersebut.

  3. Pastikan certificateKeystoreFile (atau keystoreFile) mengarah ke path file yang benar.

  4. Pastikan pengguna Tomcat memiliki izin baca pada file sertifikat.

Koneksi direset / Koneksi ditolak saat mengakses server

Ini adalah masalah konektivitas jaringan, bukan masalah sertifikat. Periksa hal berikut:

  1. Pastikan security group dan firewall OS mengizinkan lalu lintas inbound pada port 443 (atau port yang dikonfigurasi di server.xml). Lihat Langkah 2.

  2. Verifikasi bahwa Tomcat sedang berjalan: ps -ef | grep tomcat

  3. Pastikan atribut port pada konektor SSL di server.xml sesuai dengan port yang Anda akses.

Cara memperbarui atau mengganti Sertifikat SSL di Tomcat

  1. Cadangkan file yang ada. Simpan salinan file sertifikat saat ini (.pfx atau .jks) dan file password (.txt) dari server.

  2. Unduh sertifikat baru. Dapatkan paket sertifikat baru dari Konsol Layanan Manajemen Sertifikat.

  3. Ganti file. Unggah file sertifikat dan password baru ke path yang sama di server, timpa file lama. Path dan nama file harus persis sesuai dengan yang dikonfigurasi di server.xml.

  4. Restart Tomcat. Jalankan sudo ./shutdown.sh dan sudo ./startup.sh dari direktori bin Tomcat untuk menerapkan sertifikat baru.