Dalam tutorial ini, Anda akan mempelajari cara menginstal sertifikat SSL di Apache Tomcat menggunakan utilitas Java keytool, kemudian mengonfigurasi konektor HTTPS di server.xml. Jika Anda belum membuat CSR, bagian pertama akan menunjukkan caranya.
Kami juga membuat video yang memandu Anda melalui seluruh prosesnya. Anda dapat menonton video, membaca petunjuknya, atau melakukan keduanya. Anda dapat menonton videonya di bawah ini.
Membuat kode CSR untuk Tomcat
CSR adalah singkatan dari Certificate Signing Request, yaitu blok teks yang berisi detail terkini tentang domain dan organisasi Anda. Setiap pembeli sertifikat SSL komersial harus mengirimkan CSR kepada Certificate Authority (penyedia SSL) untuk lolos validasi dan menerima sertifikat. Jika CSR berisi detail yang salah, CA tidak akan menandatanganinya.
Di Tomcat, CSR dibuat dengan keytool dari sebuah Java keystore, dan keystore yang sama itu menyimpan private key yang akan Anda gunakan kembali saat instalasi. Anda memiliki dua opsi:
- Gunakan CSR Generator kami untuk membuat CSR secara otomatis.
- Ikuti tutorial langkah demi langkah kami tentang cara membuat CSR di Tomcat.
Penting: catat baik-baik file keystore dan alias yang Anda gunakan saat membuat CSR. Anda akan mengimpor kembali sertifikat yang telah ditandatangani ke alias yang persis sama nantinya, karena di situlah private key yang cocok berada.
Setelah Certificate Authority memvalidasi permintaan Anda dan mengirimkan file SSL, lanjutkan dengan instalasi di bawah ini.
Menginstal sertifikat SSL di Tomcat
Instalasi Tomcat memiliki dua tahap: pertama Anda mengimpor rantai sertifikat dan sertifikat yang telah ditandatangani ke dalam keystore yang sudah berisi private key Anda, kemudian Anda mengonfigurasi konektor HTTPS di server.xml untuk menggunakan keystore tersebut.
Langkah 1: Siapkan file sertifikat SSL Anda
Certificate Authority Anda akan mengirim file tersebut melalui email ke alamat yang Anda berikan, biasanya dalam bentuk arsip ZIP. Ekstrak arsip tersebut. Tergantung pada CA-nya, file akan tiba dalam salah satu dari dua format berikut:
- PKCS#7: satu file .p7b (atau .cer) yang sudah menggabungkan sertifikat Anda bersama dengan sertifikat root dan intermediate.
- PEM: file terpisah, biasanya berupa .crt untuk sertifikat server Anda ditambah file root.crt dan intermediate.crt tersendiri.
Unggah file yang telah diekstrak ke server, ke dalam direktori yang sama dengan keystore tempat Anda membuat CSR (disebut sebagai example.jks di bawah ini). Kenali format Anda dan ikuti petunjuk yang sesuai.
Membuat CSR di tempat lain, sehingga private key Anda adalah file terpisah, bukan entri dalam example.jks? Lewati keytool: konversi PEM ke PKCS#12 untuk menggabungkan sertifikat, rantai, dan kunci ke dalam satu file .p12, lalu rujuk file tersebut pada Langkah 3 dengan certificateKeystoreType=”PKCS12″.
Langkah 2: Impor sertifikat ke dalam keystore Anda
Format PKCS#7. Karena file .p7b sudah berisi rantai lengkap, satu perintah saja dapat mengimpor semuanya sekaligus ke dalam alias private key Anda yang sudah ada:
keytool -import -trustcacerts -alias ssldragon -keystore example.jks -file example.p7b
Ganti ssldragon dengan alias Anda sendiri dan example dengan nama file Anda. Alias tersebut harus alias yang sudah menyimpan private key Anda (alias dari langkah CSR). Ketika Anda melihat pesan Certificate reply was installed in keystore, artinya impor berhasil. Verifikasi isi keystore dengan:
keytool -list -v -keystore example.jks
Carilah entri yang jenisnya PrivateKeyEntry dengan panjang rantai sertifikat lebih dari 1. Itu menandakan bahwa sertifikat yang ditandatangani kini telah terhubung dengan private key Anda.
Format PEM. Impor sertifikat secara terpisah, sesuai urutan rantai: root terlebih dahulu, kemudian intermediate mana pun, dan sertifikat domain Anda terakhir. Mengimpor rantai terlebih dahulu memungkinkan keytool membangun jalur kepercayaan yang lengkap sebelum melampirkan reply ke kunci Anda. Impor sertifikat root:
keytool -import -trustcacerts -alias root -keystore example.jks -file root.crt
Kemudian impor sertifikat intermediate:
keytool -import -trustcacerts -alias intermediate -keystore example.jks -file intermediate.crt
Jika CA Anda menyediakan beberapa sertifikat intermediate, impor masing-masing di bawah aliasnya sendiri yang tepercaya, mengikuti urutan penandatanganan satu sama lain (dari root menuju ke sertifikat domain Anda). Misalnya, sertifikat Sectigo Sectigo PositiveSSL dilengkapi dengan lebih dari satu intermediate, jadi impor secara berurutan sebelum sertifikat domain.
Terakhir, impor sertifikat utama Anda (yang diterbitkan untuk domain Anda) ke dalam alias private key yang sudah ada, alias yang sama yang Anda gunakan saat membuat CSR:
keytool -import -trustcacerts -alias ssldragon -keystore example.jks -file example.crt
Di sini, ssldragon harus merupakan alias private key Anda yang sudah ada. Karena alias tersebut sudah memiliki kunci, keytool memperlakukan impor ini sebagai certificate reply dan mengaitkan sertifikat yang ditandatangani dengan kunci tersebut. Inilah langkah yang membuat HTTPS berfungsi.
Kesalahan kritis yang harus dihindari: jangan mengimpor sertifikat yang telah ditandatangani ke dalam alias yang benar-benar baru. Jika alias tersebut tidak memiliki private key yang ada, keytool akan menyimpan sertifikat tersebut sebagai entri tepercaya yang berdiri sendiri tanpa kunci yang terlampir, dan TLS akan gagal. Jika Anda tidak yakin alias mana yang menyimpan kunci Anda, jalankan keytool -list -v -keystore example.jks dan gunakan alias yang jenisnya PrivateKeyEntry.
Langkah 3: Konfigurasikan konektor HTTPS di server.xml
Setelah sertifikat berada di keystore Anda, arahkan konektor HTTPS Tomcat ke sana. Konektor ini didefinisikan di server.xml, yang terletak di folder conf pada instalasi Tomcat Anda (misalnya $CATALINA_HOME/conf/server.xml). Buka file tersebut di editor teks.
Pada versi Tomcat terkini (9, 10, dan 11), bentuk yang direkomendasikan menyisipkan elemen SSLHostConfig, yang pada gilirannya menyimpan elemen Certificate yang merujuk pada keystore Anda. Tambahkan atau perbarui konektor aman agar terlihat seperti ini:
<Connector
port="443"
protocol="org.apache.coyote.http11.Http11NioProtocol"
maxThreads="150"
SSLEnabled="true"
scheme="https"
secure="true">
<SSLHostConfig>
<Certificate
certificateKeystoreFile="/your_path/example.jks"
certificateKeystorePassword="your_keystore_password"
certificateKeystoreType="JKS"
certificateKeyAlias="ssldragon"
type="RSA" />
</SSLHostConfig>
</Connector>
- certificateKeystoreFile: jalur lengkap menuju file keystore Anda.
- certificateKeystorePassword: kata sandi keystore.
- certificateKeystoreType: JKS untuk keystore .jks, atau PKCS12 untuk keystore .p12 / .pfx.
- certificateKeyAlias: alias yang menyimpan private key dan sertifikat yang telah ditandatangani (dalam contoh ini, ssldragon). Ini memberi tahu Tomcat entri mana yang harus digunakan ketika keystore berisi lebih dari satu entri.
Catatan: port 443 adalah port HTTPS standar yang digunakan di atas; contoh bawaan Tomcat sendiri secara default menggunakan 8443, jadi gunakan yang sesuai dengan lingkungan Anda. Jika ini adalah pengaturan HTTPS pertama Anda, konektor aman mungkin dinonaktifkan (dikomentari) di server.xml. Hapus tanda komentar di sekitarnya agar konektor tersebut aktif, dan pastikan tidak ada konektor lain yang sudah terikat pada port yang sama.
Bentuk lama (Tomcat versi lebih lama). Panduan lama menempatkan detail keystore langsung pada konektor sebagai atribut keystoreFile dan keystorePass. Gaya tersebut telah digantikan oleh elemen SSLHostConfig dan Certificate yang ditunjukkan di atas, yang merupakan bentuk yang harus digunakan pada rilis Tomcat yang didukung.
Langkah 4: Simpan server.xml dan restart Tomcat
Simpan server.xml, lalu restart Tomcat agar memuat ulang konfigurasi. Di Linux, gunakan skrip bawaan:
$CATALINA_HOME/bin/shutdown.sh
$CATALINA_HOME/bin/startup.sh
Jika Tomcat berjalan sebagai layanan, restart melalui pengelola layanan Anda sebagai gantinya (misalnya systemctl restart tomcat di Linux, atau panel Services di Windows). Selamat, sertifikat SSL Anda kini telah terinstal di server Tomcat Anda.
Menguji instalasi SSL Tomcat Anda
Setelah menginstal sertifikat, kesalahan kecil dapat luput tanpa disadari dan memengaruhi cara peramban memperlakukan situs Anda. Biasakan untuk memeriksa instalasi. Jalankan SSL Checker kami untuk pemindaian instan yang mengungkap masalah seperti sertifikat intermediate yang hilang atau rantai yang tidak tepercaya.
Pertanyaan yang Sering Diajukan
Penyebab yang biasa terjadi adalah mengimpor sertifikat yang telah ditandatangani ke dalam alias baru, bukan alias yang sudah menyimpan private key Anda. keytool kemudian menyimpannya sebagai entri sertifikat tepercaya tanpa kunci, sehingga Tomcat tidak dapat menyelesaikan jabat tangan TLS. Impor ulang reply yang telah ditandatangani ke dalam alias private key yang sudah ada (alias dari CSR Anda). Pastikan hal ini berhasil dengan menjalankan keytool -list -v -keystore example.jks dan memeriksa apakah alias tersebut ditampilkan sebagai PrivateKeyEntry dengan rantai lebih dari satu sertifikat.
Impor rantai terlebih dahulu. Tambahkan sertifikat root dan intermediate mana pun sebagai entri tepercaya, secara berurutan, lalu impor sertifikat domain Anda ke dalam alias private key terakhir. Ini memungkinkan keytool membangun jalur kepercayaan yang lengkap sebelum melampirkan reply ke kunci Anda. Dengan file PKCS#7 (.p7b), rantai sudah digabungkan, sehingga satu kali impor saja menangani semuanya.
Konektor HTTPS didefinisikan di server.xml, dalam direktori conf pada instalasi Tomcat Anda (misalnya $CATALINA_HOME/conf/server.xml). Pada versi Tomcat terkini, keystore dirujuk melalui elemen bersarang SSLHostConfig dan Certificate, bukan langsung pada konektor.
Ya. Tomcat mendukung keduanya. Atur certificateKeystoreType ke PKCS12 untuk keystore .p12 atau .pfx, atau JKS untuk keystore .jks, dan arahkan certificateKeystoreFile ke file yang sesuai. PKCS12 adalah format keystore standar dan portabel, sehingga menjadi pilihan default yang baik untuk keystore baru.
Konfigurasi contoh Tomcat menggunakan port 8443 untuk konektor aman. Untuk menyajikan HTTPS pada port standar yang digunakan peramban secara default, atur port konektor ke 443 dan pastikan tidak ada konektor atau layanan lain yang sudah menggunakannya.
Jalankan skrip bawaan $CATALINA_HOME/bin/shutdown.sh diikuti dengan $CATALINA_HOME/bin/startup.sh, atau restart layanan Tomcat melalui pengelola layanan Anda (misalnya systemctl restart tomcat di Linux, atau panel Services di Windows). Restart diperlukan agar perubahan pada server.xml dapat berlaku.
Hemat 10% untuk Sertifikat SSL saat memesan hari ini!
Penerbitan cepat, enkripsi kuat, kepercayaan peramban 99,99%, dukungan khusus, dan jaminan uang kembali 25 hari. Kode kupon: SAVE10

