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.comhanya melindungiexample.com.www.example.comhanya melindungiwww.example.com.
Nama domain wildcard: Hanya berlaku untuk subdomain tingkat pertama.
*.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 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
rootatau akun dengan hak istimewasudo.Resolusi nama domain: Rekaman DNS domain telah dikonfigurasi dan di-resolve ke Alamat IP publik server.
Mulai cepat
Proses instalasi terdiri dari empat langkah:
Unduh paket sertifikat dari Konsol Layanan Manajemen Sertifikat dan unggah file ke server Anda.
Buka port 443 di security group dan firewall Anda.
Edit
server.xmluntuk menambahkan konektor SSL, lalu restart Tomcat.Buka
https://yourdomaindi 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.comhanya melindungiexample.com, danwww.example.comhanya melindungiwww.example.com.Nama domain wildcard: Hanya berlaku untuk subdomain tingkat pertama. Misalnya,
*.example.commencakupwww.example.comdana.example.com, tetapi tidak mencakup domain rootexample.comatau subdomain multi-level sepertia.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
rootatau akun dengan hak istimewasudodi server.Rekaman DNS untuk domain yang di-resolve ke Alamat IP publik server.
Langkah 1: Siapkan file sertifikat
Buka halaman SSL Certificates. Di kolom Actions sertifikat target, klik Download Certificate. Pada tab Download, pilih Tomcat sebagai Server Type lalu unduh paket tersebut.
Ekstrak paket yang diunduh. Paket tersebut berisi file sertifikat (
.pfxatau.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.
Unggah file sertifikat (
.pfxatau.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.PentingSetelah 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:
Buka instans Elastic Compute Service (ECS) dan klik nama instans target.
Di bagian Security Group Details, tambahkan aturan security group dengan pengaturan berikut lalu simpan: Untuk platform cloud lain, rujuk dokumentasi mereka.
Field Value Action Allow Protocol Custom TCP Destination (Current Instance) HTTPS (443) Source 0.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> 443Jika 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> 443Jika 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"
fiJika 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 --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 mempertahankan aturan iptables setelah reboot:
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: Konfigurasi Tomcat
Sintaksis konfigurasi sedikit berbeda antar versi Tomcat. Ikuti bagian yang sesuai dengan versi Anda.
Tomcat 9
Dari direktori root Tomcat, buka
server.xml:sudo vim ./conf/server.xmlKonfigurasikan 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" />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
certificateKeystoreFiledengan path aktual ke file sertifikat Anda, dan ganti nilaicertificateKeystorePassworddengan isi file password yang sesuai.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
Validasi konfigurasi. Dari direktori
binTomcat, jalankan:./configtest.shJika output adalah
Configuration file test successful, konfigurasi valid. Jika muncul error, perbaiki konfigurasi berdasarkan pesan error lalu jalankan validasi ulang.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.

Mulai dari versi 117, Chrome mengganti ikon
dengan ikon
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:
Port 443 diblokir. Verifikasi bahwa security group dan firewall OS mengizinkan lalu lintas inbound TCP pada port 443. Lihat Langkah 2.
Ketidakcocokan domain. Pastikan domain yang Anda akses tercantum di bidang Bound Domains sertifikat. Lihat bagian Prasyarat untuk aturan pencocokan domain.
Tomcat belum direstart. Konfigurasi baru hanya berlaku setelah Tomcat direstart. Lihat langkah validasi dan restart di Langkah 3.
Path atau file sertifikat salah. Periksa bahwa
certificateKeystoreFile(ataukeystoreFile) diserver.xmlmengarah ke file sertifikat yang benar dan mutakhir.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.
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:
Buka file password (
.txt) dari paket sertifikat dan salin isinya secara tepat, tanpa spasi atau baris baru di akhir.Perbarui atribut
certificateKeystorePassword(ataukeystorePass) diserver.xmldengan nilai tersebut.Pastikan
certificateKeystoreFile(ataukeystoreFile) mengarah ke path file yang benar.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:
Pastikan security group dan firewall OS mengizinkan lalu lintas inbound pada port 443 (atau port yang dikonfigurasi di
server.xml). Lihat Langkah 2.Verifikasi bahwa Tomcat sedang berjalan:
ps -ef | grep tomcatPastikan atribut
portpada konektor SSL diserver.xmlsesuai dengan port yang Anda akses.
Cara memperbarui atau mengganti Sertifikat SSL di Tomcat
Cadangkan file yang ada. Simpan salinan file sertifikat saat ini (
.pfxatau.jks) dan file password (.txt) dari server.Unduh sertifikat baru. Dapatkan paket sertifikat baru dari Konsol Layanan Manajemen Sertifikat.
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.Restart Tomcat. Jalankan
sudo ./shutdown.shdansudo ./startup.shdari direktoribinTomcat untuk menerapkan sertifikat baru.