bg-tutorials

Cara Membuat CSR di Server JBoss

Tutorial ini menunjukkan kepada Anda cara membuat CSR (Certificate Signing Request) di JBoss EAP dan WildFly menggunakan utilitas Java keytool. Alurnya terdiri dari dua perintah: pertama keytool -genkeypair membuat keystore dan private key di bawah alias yang dipilih, lalu keytool -certreq mengekspor CSR yang sesuai dengan Subject Alternative Names yang akan diterbitkan oleh CA. Alias yang sama digunakan kembali nanti saat Anda mengimpor sertifikat yang telah ditandatangani, sehingga key, CSR, dan sertifikat akhirnya semua berada di satu tempat.

Catatan tentang versi: JBoss modern adalah Red Hat JBoss Enterprise Application Platform (EAP) 8, yang dirilis pada Februari 2024 dan didasarkan pada proyek upstream WildFly (WildFly 41, dirilis pada Juli 2026, merupakan rilis komunitas terkini). Keduanya menghubungkan HTTPS melalui subsistem elytron dan https-listener Undertow; konfigurasi konektor Tomcat atau Jetty yang lebih lama seperti yang ditunjukkan dalam panduan lama tidak lagi berlaku. Namun, langkah CSR itu sendiri identik di semua versi terbaru karena merupakan operasi Java keytool biasa.

Apa yang Anda perlukan

  • Instalasi Java (JDK atau JRE) agar perintah keytool tersedia. JBoss EAP 8.0 berjalan pada Java 11 (deprecated) atau 17, EAP 8.1 menambahkan Java 21, dan WildFly 41 berjalan pada Java 17, 21, atau 25 (Java 11 tidak lagi didukung di upstream). Konfirmasikan dengan keytool -help.
  • Akses shell atau terminal pada server JBoss yang akan menyimpan private key. Private key ini harus tetap berada di server ini.
  • Fully qualified domain name (FQDN) yang tepat yang ingin Anda amankan, misalnya www.yourdomain.com, ditambah nama host tambahan yang ingin Anda cakup dalam field SAN.
  • Detail hukum organisasi Anda (negara, negara bagian, lokalitas, nama organisasi) untuk Distinguished Name CSR.

Langkah 1: Buat keystore dan private key

Jika Anda sudah membuat CSR, lanjutkan ke kirim CSR dan kemudian ke memasang sertifikat SSL di JBoss.

Buka terminal di server JBoss dan buat keystore baru dalam format PKCS12. PKCS12 adalah standar modern dan portabel (RFC 7292) dan telah menjadi format keystore default di Java sejak JDK 9; format JKS yang lebih lama dan proprietary sudah deprecated. Jalankan:

keytool -genkeypair 
  -alias jboss 
  -keyalg RSA -keysize 2048 
  -storetype PKCS12 
  -keystore yourdomain.p12 
  -validity 825

Arti dari setiap flag:

  • -alias jboss: nama entri di dalam keystore. Pilih label yang akan Anda kenali (biasanya jboss, server, atau domain Anda). Catat ini. Anda harus menggunakan alias yang sama persis saat membuat CSR dan sekali lagi saat mengimpor sertifikat yang telah ditandatangani. Menggunakan alias yang berbeda saat impor adalah kesalahan keytool yang paling umum terjadi.
  • -keyalg RSA -keysize 2048: key RSA 2048-bit adalah standar minimum publik saat ini. Untuk keystore baru yang ingin Anda gunakan selama beberapa tahun, 3072 bit adalah peningkatan yang wajar. Sebagian besar CA publik juga menerima ECDSA (-keyalg EC -groupname secp256r1) jika Anda lebih memilih key yang lebih kecil dan lebih cepat. Opsi -groupname membutuhkan JDK 13 atau yang lebih baru; pada Java 11 gunakan -keyalg EC -keysize 256 sebagai gantinya, yang memilih curve secp256r1 yang sama. keytool menolak kedua opsi tersebut dalam perintah yang sama.
  • -storetype PKCS12: memaksa penggunaan keystore PKCS12 modern. Ekstensi yang sesuai adalah .p12 (atau .pfx).
  • -keystore yourdomain.p12: file keystore yang akan dibuat. Ganti nama tersebut dengan sesuatu yang Anda kenali, dan jaga keamanan file ini; file ini berisi private key Anda.
  • -validity 825: berapa lama sertifikat placeholder self-signed di dalam keystore berlaku. Sertifikat yang ditandatangani dari CA akan menggantikannya nanti, sehingga nilai pastinya tidak memengaruhi masa berlaku produksi.

keytool kemudian meminta kata sandi keystore. Pilih kata sandi yang kuat dan simpan di secrets manager Anda: Anda akan membutuhkannya untuk setiap perintah keytool berikutnya dan untuk credential-reference Elytron yang akan Anda konfigurasikan di JBoss. Dengan keystore PKCS12, kata sandi key sama dengan kata sandi keystore, sehingga hanya ada satu kata sandi yang perlu diingat.

Langkah 2: Masukkan detail organisasi Anda (DN)

keytool sekarang meminta Distinguished Name (DN): field identitas yang akan masuk ke dalam CSR. Jawab setiap prompt dengan nilai yang tepat dan sah secara hukum untuk organisasi Anda. Tanda baca dan keakuratan sangat penting, karena CA akan menolak ketidaksesuaian dengan catatan bisnis publik.

  • Nama depan dan belakang (CN): ini adalah istilah yang digunakan keytool, tetapi ini adalah field Common Name. Masukkan FQDN yang tepat yang Anda amankan, misalnya www.yourdomain.com, atau wildcard seperti *.yourdomain.com. Jangan masukkan nama orang.
  • Organizational unit (OU): field ini tidak lagi diterbitkan oleh CA publik dan sebaiknya dikosongkan. Perhatikan bahwa menekan Enter tidak akan membuatnya kosong: keytool akan menggantinya dengan nilai default sendiri, sehingga DN akan membawa OU=Unknown, yang kemudian ikut masuk ke dalam CSR. Untuk benar-benar menghilangkan field ini, gunakan bentuk non-interaktif -dname di bawah ini dan hilangkan OU dari string tersebut.
  • Organization (O): nama lengkap sah perusahaan Anda, misalnya Your Company LLC. Sertifikat OV dan EV mewajibkan ini; untuk sertifikat DV, banyak CA menerimanya sebagai informasi tambahan, sehingga mengisinya lebih aman daripada membiarkannya kosong.
  • City or locality (L): nama kota lengkap, misalnya San Jose. Jangan disingkat.
  • State or province (ST): nama negara bagian atau provinsi lengkap, misalnya California. Jangan menggunakan kode dua huruf.
  • Country code (C): kode negara ISO dua huruf, misalnya US, GB, DE.

Setelah prompt terakhir, keytool menampilkan ringkasan seperti CN=www.yourdomain.com, OU=Unknown, O=Your Company LLC, L=San Jose, ST=California, C=US. Ketik yes untuk mengonfirmasi. File keystore sekarang sudah ada dengan satu entri: alias Anda, yang menyimpan private key dan sertifikat placeholder self-signed.

Jika Anda lebih suka perintah non-interaktif, masukkan DN langsung dan lewati prompt:

keytool -genkeypair 
  -alias jboss 
  -keyalg RSA -keysize 2048 
  -storetype PKCS12 
  -keystore yourdomain.p12 
  -dname "CN=www.yourdomain.com, O=Your Company LLC, L=San Jose, ST=California, C=US" 
  -validity 825

Langkah 3: Buat CSR dengan SAN

Browser modern dan klien TLS memvalidasi sertifikat berdasarkan ekstensi Subject Alternative Name (SAN), bukan hanya berdasarkan Common Name saja. Minta SAN langsung dalam CSR agar CA menyertakannya dalam sertifikat yang diterbitkan. Gunakan alias dan keystore yang sama dari Langkah 1:

keytool -certreq 
  -alias jboss 
  -keystore yourdomain.p12 
  -file yourdomain.csr 
  -ext san=dns:yourdomain.com,dns:www.yourdomain.com

Arti dari setiap flag:

  • -alias jboss: harus cocok dengan alias dari Langkah 1. Ini adalah alias yang private key-nya menandatangani permintaan tersebut.
  • -keystore yourdomain.p12: harus cocok dengan keystore dari Langkah 1.
  • -file yourdomain.csr: nama file output untuk CSR.
  • -ext san=dns:…: ekstensi Subject Alternative Name. Cantumkan setiap nama host yang harus dicakup sertifikat, termasuk baik apex (yourdomain.com) maupun subdomain www. Tambahkan entri lainnya dipisahkan koma, misalnya dns:api.yourdomain.com.

keytool akan meminta kata sandi keystore dan menulis CSR ke yourdomain.csr di direktori saat ini.

Penting: pertahankan alias dan keystore Anda

Kesalahan keytool yang paling umum terjadi di JBoss adalah mengimpor sertifikat yang telah ditandatangani ke dalam alias baru. Melakukan hal itu akan menyimpan sertifikat tersebut sebagai entri terpercaya berdiri sendiri tanpa private key yang terhubung, dan Elytron key-manager akan gagal memulai sesi TLS. Selalu impor balasan yang telah ditandatangani ke dalam alias yang sama yang menyimpan private key (alias dari Langkah 1).

Catat ketiga nilai ini sekarang, sebelum Anda menutup terminal:

  • Alias (dalam panduan ini, jboss).
  • Path file keystore (misalnya yourdomain.p12; di JBoss biasanya terletak di $JBOSS_HOME/standalone/configuration/).
  • Kata sandi keystore.

Jika Anda tidak yakin alias mana yang menyimpan key Anda, tampilkan daftar isi keystore dan cari entri dengan tipe PrivateKeyEntry:

keytool -list -v -keystore yourdomain.p12

Langkah 4: Verifikasi CSR sebelum mengirimkannya

Temukan kesalahan pengetikan dalam DN atau SAN yang hilang sebelum CA memvalidasinya. Cetak CSR dengan keytool:

keytool -printcertreq -file yourdomain.csr

Atau, jika OpenSSL terinstal, Anda dapat menggunakannya sebagai gantinya:

openssl req -noout -text -in yourdomain.csr

Konfirmasikan tiga hal dalam output tersebut: Subject menunjukkan DN yang tepat, Subject Alternative Name mencantumkan setiap nama host yang Anda perlukan, dan ukuran Public-Key sesuai dengan yang Anda minta (RSA 2048-bit, atau apa pun yang Anda pilih). Anda juga dapat menempelkan CSR ke CSR Decoder kami untuk pemeriksaan yang sama di browser.

Langkah 5: Kirim CSR ke Certificate Authority Anda

Buka yourdomain.csr di editor teks apa pun. File ini berupa teks biasa, dimulai dengan -----BEGIN NEW CERTIFICATE REQUEST----- dan diakhiri dengan -----END NEW CERTIFICATE REQUEST-----. Kata NEW adalah yang ditulis oleh keytool, dan itu memang normal: isinya adalah permintaan PKCS#10 standar yang diterima oleh setiap CA. Salin seluruh blok tersebut, termasuk baris header dan footer, dan tempelkan ke dalam field CSR saat checkout dengan CA Anda. Di Windows, gunakan Ctrl + A lalu Ctrl + C untuk mengambil seluruh teks; di macOS, gunakan Cmd + A lalu Cmd + C.

Cadangkan file keystore sebelum Anda melakukan hal lain. Jika Anda kehilangan yourdomain.p12, Anda juga kehilangan private key, yang berarti sertifikat yang ditandatangani dan dikembalikan oleh CA akan menjadi tidak dapat digunakan dan Anda harus mulai lagi dengan CSR baru.

Setelah CA memvalidasi permintaan Anda dan menerbitkan sertifikat, lanjutkan dengan cara memasang sertifikat SSL Anda di JBoss. Anda akan mengimpor sertifikat yang telah ditandatangani kembali ke dalam alias yang sama di keystore yang sama, kemudian merujuk keystore tersebut dari key-store, key-manager, dan server-ssl-context Elytron yang terhubung ke https-listener Undertow.

Bisakah saya menggunakan kembali CSR untuk perpanjangan?

Anda bisa, tetapi praktik terbaik keamanan adalah membuat keystore baru, private key baru, dan CSR baru untuk setiap sertifikat. Key baru untuk setiap perpanjangan membatasi dampak jika key lama pernah disusupi, dan prosesnya sama: jalankan keytool -genkeypair dan keytool -certreq terhadap file keystore baru. Masa berlaku sertifikat TLS publik semakin diperpendek berdasarkan aturan CA/Browser Forum (200 hari mulai 15 Maret 2026, turun menjadi 100 hari pada tahun 2027 dan 47 hari pada tahun 2029), sehingga rencanakan siklus CSR yang lebih sering, atau otomatiskan penerbitan melalui ACME jika CA Anda mendukungnya.

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

Ditulis oleh

Penulis konten berpengalaman yang berspesialisasi dalam Sertifikat SSL. Mengubah topik keamanan siber yang rumit menjadi konten yang jelas dan menarik. Berkontribusi untuk meningkatkan keamanan digital melalui narasi yang berdampak.