Situs web yang menggunakan HTTP tanpa enkripsi rentan terhadap penyadapan data selama transmisi. Browser juga menampilkan peringatan "Not Secure" untuk situs tersebut, yang dapat merusak kepercayaan pengguna dan keamanan bisnis. Dengan menerapkan Sertifikat SSL pada server Tomcat Windows Anda, komunikasi HTTPS terenkripsi dapat diaktifkan. Topik ini menjelaskan cara menerapkan Sertifikat SSL pada server Tomcat yang berjalan di Windows serta memverifikasi penerapannya.
Requirements
Sebelum memulai, pastikan persyaratan berikut terpenuhi:
Certificate Status: Anda memiliki Sertifikat SSL yang dikeluarkan oleh Otoritas Sertifikat (CA) tepercaya. Jika sertifikat Anda akan kedaluwarsa atau sudah kedaluwarsa, Anda harus memperbaruinya terlebih dahulu.
Domain Name Matching: Pastikan sertifikat mencakup semua nama domain yang ingin Anda lindungi. Jika Anda perlu menambahkan atau mengubah nama domain, Anda dapat membeli sertifikat berbayar atau menambahkan dan mengganti nama domain.
Nama domain eksak: Sertifikat nama domain eksak hanya berlaku untuk nama domain yang ditentukan.
Sertifikat untuk
example.comhanya berlaku untukexample.com.Sertifikat untuk
www.example.comhanya berlaku untukwww.example.com.
Nama domain wildcard: Sertifikat nama domain wildcard hanya berlaku untuk subdomain tingkat pertama.
Sertifikat untuk
*.example.comberlaku untuk subdomain tingkat pertama sepertiwww.example.comdana.example.com.Sertifikat untuk
*.example.comtidak berlaku untuk domain rootexample.comatau subdomain multi-level sepertia.b.example.com.
CatatanUntuk mencocokkan subdomain multi-level, bidang Bound Domains harus menyertakan nama domain spesifik (misalnya,
a.b.example.com) atau nama domain wildcard yang sesuai (misalnya,*.b.example.com).Server permissions: Anda harus menggunakan akun
Administratoratau akun dengan hak istimewa administrator.DNS Resolution: Nama domain di-resolve ke Alamat IP publik server.
Environment dependencies: Topik ini menggunakan Windows Server 2025 dan Tomcat 9.0.105 sebagai contoh. Direktori instalasi Tomcat contoh adalah
C:\apache-tomcat-9.0.105.CatatanLangkah-langkah penerapan dapat berbeda tergantung pada sistem operasi atau versi server web Anda.
Procedure
Step 1: Prepare the SSL certificate
Buka halaman SSL Certificate Management. Pada kolom Actions sertifikat target, klik More untuk membuka halaman detail sertifikat. Pada tab Download, unduh sertifikat untuk Server Type Tomcat.
Ekstrak paket sertifikat yang diunduh. Paket tersebut berisi file sertifikat (.pfx atau .jks) dan file kata sandi (.txt).
CatatanJika Anda menggunakan tool seperti OpenSSL atau Keytool untuk menghasilkan Certificate Signing Request (CSR) saat mengajukan sertifikat, kunci privat hanya disimpan di mesin lokal Anda dan tidak termasuk dalam paket sertifikat yang diunduh. Jika kunci privat hilang, sertifikat menjadi tidak dapat digunakan. Anda harus membeli sertifikat komersial lagi dan menghasilkan CSR serta kunci privat baru.
Unggah file sertifikat dan file kata sandi ke direktori aman di server Anda. Dalam topik ini, jalur contohnya adalah
D:\cert.CatatanLangkah-langkah berikut menggunakan Instance ECS Alibaba Cloud sebagai contoh. Untuk jenis server lain, rujuk dokumentasi resminya.
Buka ECS console - Instances. Di pojok kiri atas, pilih wilayah dan kelompok sumber daya untuk sumber daya target.
Buka halaman detail instans target. Klik Connect dan pilih Workbench. Ikuti petunjuk di layar untuk login ke desktop server.
Di pojok kiri bawah desktop server, klik menu Enabling. Temukan dan buka This PC, Computer, atau File Explorer.
Di bawah Redirected drives and folders, klik ganda workbench on ***. Seret file sertifikat dari mesin lokal Anda ke direktori ini, lalu klik kanan folder tersebut dan pilih Refresh.

Salin file ke direktori
D:\cert.PentingSaat Anda memutuskan koneksi, menyambungkan ulang, atau logout dari instans, Workbench secara otomatis menghapus semua file yang diunggah di direktori Redirected drives and folders untuk menghemat ruang disk. Direktori ini hanya dimaksudkan untuk transfer file. Jangan gunakan untuk menyimpan file.
Step 2: Configure the system and network environment
Buka port 443 di security group.
PentingJika server Anda diterapkan di platform cloud, pastikan security group-nya mengizinkan inbound traffic pada port TCP 443. Jika tidak, layanan tidak dapat diakses dari internet. Operasi berikut menggunakan Instance ECS Alibaba Cloud sebagai contoh. Untuk platform cloud lain, lihat dokumentasi resminya.
Buka halaman ECS Instances, pilih wilayah tempat Instance ECS target berada, lalu klik nama instans untuk membuka halaman detail.
Klik dan pastikan ada aturan dengan Action diatur ke Allow, Protocol Type diatur ke TCP, Port Range diatur ke HTTPS(443), dan Authorization Object diatur ke Anywhere (0.0.0.0/0).
Jika aturan tersebut tidak ada, tambahkan ke security group target. Untuk informasi lebih lanjut, lihat Add a security group rule.
Buka port 443 di firewall server.
Login ke server Windows Anda, klik menu Start, lalu buka Control Panel.
Buka .
Jika firewall dimatikan seperti yang ditunjukkan pada gambar berikut, tidak diperlukan tindakan lebih lanjut.

Jika firewall diaktifkan, ikuti langkah-langkah berikut untuk mengizinkan traffic HTTPS.
Di panel navigasi kiri, klik dan periksa apakah ada aturan masuk dengan Protocol TCP, Local Port 443, dan Action Block.
Jika aturan tersebut ada, klik kanan aturan tersebut, pilih Properties, lalu pada tab General, ubah aksi menjadi Allow the connection. Kemudian, klik Apply.
Step 3: Deploy the certificate on Tomcat
Edit file konfigurasi Tomcat
server.xmluntuk memperbarui pengaturan terkait sertifikat. Jalur contohnya adalahC:\apache-tomcat-9.0.105\conf\server.xml.PFX example
<Connector port="443" protocol="org.apache.coyote.http11.Http11NioProtocol" maxThreads="150" SSLEnabled="true" maxParameterCount="1000"> <SSLHostConfig> <!-- Ganti D:/cert/example.com.pfx dengan jalur aktual ke file sertifikat Anda. Ganti your_certificate_password dengan isi file pfx-password.txt. --> <Certificate certificateKeystoreFile="D:/cert/example.com.pfx" certificateKeystorePassword="your_certificate_password" certificateKeystoreType="PKCS12" type="RSA"/> </SSLHostConfig> </Connector>JKS example
<Connector port="443" protocol="org.apache.coyote.http11.Http11NioProtocol" maxThreads="150" SSLEnabled="true" maxParameterCount="1000"> <SSLHostConfig> <!-- Ganti D:/cert/example.com.jks dengan jalur aktual ke file sertifikat Anda. Ganti your_certificate_password dengan isi file jks-password.txt. --> <Certificate certificateKeystoreFile="D:/cert/example.com.jks" certificateKeystorePassword="your_certificate_password" certificateKeystoreType="JKS" type="RSA" /> </SSLHostConfig> </Connector>Optional: Konfigurasikan pengalihan HTTP ke HTTPS secara otomatis.
Edit file konfigurasi Tomcat
server.xml. Temukan konektor HTTP (Tomcat mendengarkan pada port 8080 secara default) dan atur atribut redirectPort ke 443. Jika atribut tersebut tidak ada, tambahkan.<!-- Tomcat mendengarkan pada port 8080 secara default. Ubah ini ke port HTTP aktual yang Anda gunakan. --> <Connector port="80" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="443" maxParameterCount="1000" />Tambahkan konfigurasi berikut ke akhir file
web.xml.<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>CatatanSetelah Anda menyimpan konfigurasi ini, server secara otomatis mengalihkan semua permintaan HTTP ke HTTPS.
Setelah menyimpan perubahan konfigurasi, navigasi ke direktori
bininstalasi Tomcat Anda dan restart server agar pengaturan SSL berlaku.Hentikan server Tomcat.
shutdown.batJalankan server Tomcat.
startup.bat
Step 4: Verify the deployment
Akses nama domain Anda melalui HTTPS. Contoh:
https://example.com. Gantiexample.comdengan nama domain aktual Anda.Jika ikon gembok muncul di bilah alamat browser, sertifikat berhasil diterapkan. Jika terjadi error akses atau ikon gembok tidak muncul, bersihkan cache browser Anda atau coba lagi dalam mode penyamaran atau privat.

Mulai Chrome 117, ikon
di bilah alamat telah diganti dengan ikon
baru. Klik ikon ini untuk melihat informasi keamanan gembok.
Jika masalah tetap berlanjut, lihat bagian FAQ untuk troubleshooting.
Deploying to production
Saat menerapkan aplikasi di lingkungan produksi, ikuti praktik terbaik berikut untuk meningkatkan keamanan, stabilitas, dan kemudahan pemeliharaan:
Jalankan aplikasi sebagai pengguna non-administrator:
Buat pengguna sistem khusus dengan hak istimewa rendah untuk aplikasi. Jangan menjalankan aplikasi menggunakan akun yang memiliki izin administrator.
CatatanKami merekomendasikan Anda menggunakan gateway-level SSL configuration. Ini melibatkan penerapan sertifikat pada reverse proxy, seperti instans SLB atau Nginx. Reverse proxy mengakhiri traffic HTTPS lalu meneruskan traffic HTTP yang telah didekripsi ke aplikasi backend.
Externalize credential management:
Jangan hard-code informasi sensitif, seperti password, di kode atau file konfigurasi Anda. Gunakan Variabel lingkungan, vault, atau Key Management Service yang disediakan penyedia cloud Anda untuk menyuntikkan kredensial.
Enforce HTTP-to-HTTPS redirection:
Pastikan semua traffic yang mengakses situs web Anda melalui HTTP dialihkan secara otomatis ke HTTPS. Hal ini membantu mencegah serangan man-in-the-middle (MITM).
Configure modern TLS protocols:
Dalam konfigurasi server Anda, nonaktifkan protokol usang dan tidak aman, seperti SSLv3, TLS 1.0, dan TLS 1.1. Aktifkan hanya TLS 1.2 dan TLS 1.3.
Monitor certificates and automate renewal:
Setelah sertifikat diterapkan, kami merekomendasikan Anda mengaktifkan pemantauan nama domain. Alibaba Cloud secara otomatis memeriksa periode validitas sertifikat dan mengirimkan pengingat sebelum sertifikat kedaluwarsa. Hal ini membantu Anda memperbarui sertifikat tepat waktu untuk mencegah gangguan layanan. Untuk informasi lebih lanjut, lihat Purchase and enable public domain name monitoring.
FAQ
Certificate not working or HTTPS inaccessible
Masalah ini umumnya disebabkan oleh hal-hal berikut:
Port 443 diblokir oleh security group atau firewall server. Untuk informasi lebih lanjut, lihat Configure the system and network environment.
Nama domain yang Anda akses tidak termasuk dalam Bound Domains sertifikat. Untuk informasi lebih lanjut, lihat Domain name match.
Layanan Tomcat tidak di-restart setelah file konfigurasi dimodifikasi. Untuk informasi lebih lanjut, lihat Stop and restart the Tomcat service.
File sertifikat tidak diganti dengan benar, atau jalur sertifikat dalam konfigurasi Tomcat salah. Verifikasi bahwa file konfigurasi dan file sertifikat terbaru dan valid.
Nama domain diintegrasikan dengan layanan cloud seperti CDN, SLB, atau WAF, tetapi sertifikat tidak diinstal pada layanan yang sesuai. Untuk informasi lebih lanjut, lihat Certificate deployment location when traffic passes through multiple cloud services.
Nama domain di-resolve ke beberapa server, tetapi sertifikat hanya diinstal pada sebagian server. Anda harus menginstal sertifikat pada setiap server.
Untuk pemecahan masalah lebih lanjut, lihat Pemecahan Masalah Penerapan Sertifikat Berdasarkan Kesalahan Browser dan Panduan Pemecahan Masalah Penerapan Sertifikat SSL.
Update an SSL certificate in Tomcat
Backup file sertifikat yang ada (.pfx atau .jks dan file .txt) di server Anda. Kemudian, login ke konsol Layanan Manajemen Sertifikat, unduh file sertifikat baru, dan unggah ke server untuk menimpa file yang ada. Pastikan jalur dan nama file tetap sama. Terakhir, restart layanan Tomcat agar sertifikat baru berlaku.
After I restart Tomcat, the service fails to start and the log (catalina.log) shows a LifecycleException or Keystore was tampered with, or password was incorrect error.
Error ini biasanya terjadi karena salah satu alasan berikut:
Kata sandi salah:
Nilai
certificateKeystorePassworddalamserver.xmltidak sesuai dengan kata sandi sertifikat aktual. Verifikasi kata sandi dengan cermat. Perhatikan bahwa ini case-sensitive.Jalur sertifikat salah:
Jalur yang ditentukan dalam
certificateKeystoreFilesalah, sehingga Tomcat tidak dapat menemukan file sertifikat. Periksa jalur tersebut dari kesalahan pengetikan. Kami merekomendasikan menggunakan jalur relatif terhadap direktoriconf/.Jenis keystore tidak sesuai:
certificateKeystoreTypetidak sesuai dengan format file sertifikat aktual. GunakanPKCS12untuk file PFX danJKSuntuk file JKS.Karakter khusus dalam kata sandi:
Kata sandi berisi karakter khusus XML seperti
&,<, atau>yang tidak di-escape dengan benar dalam fileserver.xml.
Automatic HTTP to HTTPS redirection
Ikuti petunjuk dalam bagian Set up automatic redirection from HTTP to HTTPS. Setelah memodifikasi file konfigurasi, restart layanan.