Tutorial ini menunjukkan kepada Anda cara membuat CSR (Certificate Signing Request) untuk GlassFish (sekarang Eclipse GlassFish) menggunakan utilitas Java keytool.
GlassFish memiliki keunikan yang cukup membantu: instalasi baru sudah dilengkapi dengan keystore (keystore.p12 pada Eclipse GlassFish 7.1 dan yang lebih baru, atau keystore.jks pada versi yang lebih lama) dan entri sertifikat default dengan alias s1as. Anda dapat membuat CSR langsung dari kunci yang sudah ada tersebut, atau menggantinya dengan kunci baru di bawah alias yang sama. Apa pun pilihannya, alias yang sama akan digunakan kembali saat Anda mengimpor sertifikat yang telah ditandatangani, sehingga kunci, CSR, dan sertifikat yang diterbitkan semuanya berada di satu tempat.
Yang Anda butuhkan
- Instalasi GlassFish (atau Eclipse GlassFish) yang berfungsi. Keystore default berada di direktori config domain, misalnya glassfish/domains/domain1/config/keystore.p12 pada Eclipse GlassFish 7.1 dan yang lebih baru, atau keystore.jks pada versi yang lebih lama.
- Instalasi Java agar perintah keytool tersedia. GlassFish sudah dilengkapi dengan JDK, sehingga keytool biasanya sudah ada di path. Konfirmasi dengan
keytool -help. - Akses shell atau terminal pada server GlassFish. Kunci privat harus tetap berada di server ini.
- Fully qualified domain name (FQDN) yang tepat yang ingin Anda amankan, misalnya www.namadomainanda.com, ditambah hostname tambahan apa pun untuk kolom SAN.
- Detail hukum organisasi Anda (negara, provinsi, kota, nama organisasi) untuk Distinguished Name CSR.
- Master password GlassFish untuk domain. Default pabrik adalah changeit; ubah pada sistem produksi dengan
asadmin change-master-password.
Dua cara untuk membuat CSR
Jika Anda sudah membuat CSR, langsung saja ke kirim CSR lalu ke instal sertifikat SSL Anda di GlassFish.
Ada dua alur keytool yang umum di GlassFish. Pilih yang sesuai dengan situasi Anda:
- Opsi A: Buat CSR dari kunci s1as yang sudah ada (direkomendasikan). Domain GlassFish baru sudah memiliki kunci privat di bawah alias s1as di dalam keystore default (keystore.p12 pada 7.1+, keystore.jks pada versi yang lebih lama). Cara tercepat dan paling minim risiko adalah membiarkan kunci tersebut tetap ada dan hanya mengekspor CSR darinya. Langsung ke Opsi A.
- Opsi B: Ganti kunci s1as default dengan kunci baru, lalu buat CSR. Gunakan ini jika Anda menginginkan ukuran kunci dan DN yang diketahui dan terkini, atau jika Anda mencurigai kunci default telah digunakan atau terekspos. Langsung ke Opsi B.
Apa pun opsi yang Anda pilih, alias harus tetap s1as (atau, jika Anda mengubahnya, Anda juga harus memperbarui domain.xml agar sesuai). Listener HTTPS GlassFish mencari sertifikat berdasarkan alias, sehingga alias yang tidak cocok berarti GlassFish tidak dapat menemukan kunci tersebut dan TLS tidak akan berjalan.
Opsi A: Buat CSR dari kunci s1as yang sudah ada
Langkah 1: Pindah ke direktori config GlassFish
Buka terminal dan pindah ke direktori yang menyimpan keystore untuk domain Anda. Pada instalasi default, itu adalah folder config di domain1:
cd /opt/glassfish7/glassfish/domains/domain1/config
Sesuaikan path dengan lokasi instalasi GlassFish Anda (versi GlassFish 4 yang lebih lama menempatkan instalasi di bawah folder utama glassfish4/; Eclipse GlassFish 6, 7, dan 8 biasanya terinstal di bawah glassfish7/, glassfish8/, atau serupa). Jika Anda membuat domain sendiri, ganti domain1 dengan nama domain tersebut. Jalankan ls *.p12 *.jks di direktori ini untuk memastikan nama file keystore: pada Eclipse GlassFish 7.1 dan yang lebih baru Anda akan melihat keystore.p12; pada versi yang lebih lama Anda akan melihat keystore.jks. Ganti nama file tersebut di mana pun perintah di bawah ini menampilkan keystore.jks.
Langkah 2: Konfirmasi entri s1as ada
Tampilkan isi keystore dan periksa bahwa s1as ada dan merupakan PrivateKeyEntry:
keytool -list -v -keystore keystore.jks -alias s1as
Masukkan kata sandi keystore (default pabrik changeit; pada server produksi seharusnya sama dengan master password domain Anda). Output harus menyertakan baris Entry type: PrivateKeyEntry. Jika sebaliknya Anda mendapat pesan Alias <s1as> does not exist, beralihlah ke Opsi B dan buat entri baru.
Langkah 3: Ekspor CSR dengan SAN
Browser dan klien TLS modern memvalidasi sertifikat terhadap ekstensi Subject Alternative Name (SAN), bukan hanya terhadap Common Name saja. Minta SAN langsung di dalam CSR agar CA menyertakannya dalam sertifikat yang diterbitkan:
keytool -certreq
-alias s1as
-keystore keystore.jks
-file glassfish.csr
-ext san=dns:yourdomain.com,dns:www.yourdomain.com
Arti dari setiap flag:
- -alias s1as: alias sertifikat GlassFish yang sudah ada. Kunci privat di bawah alias ini menandatangani permintaan.
- -keystore keystore.jks: file keystore default GlassFish. Eclipse GlassFish 7.1 dan yang lebih baru menyertakan keystore PKCS12 bernama keystore.p12; versi yang lebih lama menggunakan keystore JKS bernama keystore.jks. Gunakan nama file yang benar-benar ada di direktori ini. Perintahnya sendiri sama saja; keytool mendeteksi formatnya secara otomatis.
- -file glassfish.csr: nama file output untuk CSR. Pilih nama apa pun yang Anda suka.
- -ext san=dns:…: ekstensi Subject Alternative Name. Cantumkan setiap hostname yang harus dicakup oleh sertifikat, termasuk apex tanpa awalan (yourdomain.com) dan subdomain www. Tambahkan entri lainnya dipisahkan dengan koma, misalnya dns:api.yourdomain.com.
keytool akan meminta kata sandi keystore dan menulis CSR ke glassfish.csr di direktori saat ini. Subject (Distinguished Name) dari CSR diambil dari apa pun yang tersimpan dalam entri s1as; pada instalasi GlassFish baru, itu adalah sertifikat self-signed yang dibuat otomatis, sehingga DN tidak akan sesuai dengan perusahaan Anda. Sebagian besar CA hanya memverifikasi Common Name dan daftar SAN serta memungkinkan Anda mengganti sisa DN pada formulir pemesanan, tetapi jika Anda memerlukan CSR yang DN-nya sudah memuat detail hukum perusahaan Anda, gunakan Opsi B.
Opsi B: Ganti kunci s1as default dengan yang baru
Gunakan opsi ini jika Anda ingin kendali penuh atas ukuran kunci dan DN, atau jika Anda lebih memilih untuk tidak menggunakan kembali kunci bawaan pabrik. Alurnya adalah: hapus entri s1as default, buat kunci baru di bawah alias yang sama, lalu ekspor CSR. Mempertahankan alias sebagai s1as berarti Anda tidak perlu mengubah domain.xml setelahnya.
Langkah 1: Cadangkan keystore
Sebelum menghapus apa pun, salin keystore saat ini agar Anda dapat mengembalikannya jika diperlukan. Dari direktori config domain:
cp keystore.jks keystore.jks.bak
Langkah 2: Hapus entri s1as default
keytool -delete -alias s1as -keystore keystore.jks
Masukkan kata sandi keystore saat diminta.
Langkah 3: Buat kunci privat baru di bawah alias yang sama
Buat kunci RSA 2048-bit baru di bawah alias s1as dan sertakan DN secara langsung agar perintah tidak bersifat interaktif:
keytool -genkeypair
-alias s1as
-keyalg RSA -keysize 2048
-keystore keystore.jks
-dname "CN=www.yourdomain.com, O=Your Company LLC, L=San Jose, ST=California, C=US"
-validity 825
Arti dari setiap flag:
- -alias s1as: menggunakan kembali alias default GlassFish sehingga domain.xml tidak perlu diubah.
- -keyalg RSA -keysize 2048: kunci RSA 2048-bit adalah standar minimum publik saat ini. Untuk kunci baru yang berencana Anda pakai selama beberapa tahun, 3072 bit merupakan peningkatan yang wajar. Sebagian besar CA publik juga menerima ECDSA (-keyalg EC -groupname secp256r1) untuk kunci yang lebih kecil dan lebih cepat.
- -keystore keystore.jks: keystore default GlassFish. Ganti dengan keystore.p12 pada Eclipse GlassFish 7.1 dan yang lebih baru. keytool mempertahankan format keystore yang sudah ada (JKS pada instalasi lama, PKCS12 pada 7.1+); keduanya sama-sama berfungsi baik di sini.
- -dname “CN=…”: kolom Distinguished Name yang ditulis ke dalam CSR. Gunakan detail perusahaan Anda yang tepat dan sah secara hukum:
- CN: FQDN yang tepat yang sedang Anda amankan, misalnya www.namadomainanda.com, atau wildcard seperti *.namadomainanda.com. Jangan masukkan nama orang, meskipun teks prompt keytool dalam mode interaktif menyebut demikian.
- O: nama hukum lengkap perusahaan Anda.
- L: nama kota lengkap (jangan disingkat).
- ST: nama provinsi atau negara bagian lengkap (jangan gunakan kode dua huruf).
- C: kode negara ISO dua huruf, misalnya US, GB, DE.
- OU (Organizational Unit): kolom ini sudah tidak diterbitkan lagi oleh CA publik. Hilangkan dari DN.
keytool akan meminta kata sandi keystore dan kata sandi kunci. Pada domain GlassFish, kata sandi keystore, kata sandi kunci, dan master password domain harus semuanya sama, jika tidak GlassFish tidak dapat membuka kunci saat startup dan HTTPS akan gagal. Tekan Enter pada prompt kata sandi kunci untuk menggunakan kembali kata sandi keystore.
Langkah 4: Ekspor CSR dengan SAN
Perintah yang sama seperti Opsi A, dijalankan terhadap kunci baru Anda:
keytool -certreq
-alias s1as
-keystore keystore.jks
-file glassfish.csr
-ext san=dns:yourdomain.com,dns:www.yourdomain.com
Masukkan kata sandi keystore. keytool menulis CSR ke glassfish.csr di direktori saat ini.
Penting: pertahankan alias sebagai s1as
Kesalahan keytool yang paling umum di GlassFish adalah mengubah alias di suatu titik dalam proses, baik saat membuat kunci maupun saat mengimpor sertifikat yang telah ditandatangani. Dua mode kegagalan yang muncul:
- Alias yang salah pada kunci. Listener HTTPS GlassFish terhubung ke s1as di domain.xml. Jika Anda membuat kunci di bawah alias yang berbeda, GlassFish tidak dapat menemukannya dan listener akan kembali menggunakan sertifikat self-signed default (atau gagal untuk dijalankan). Jika Anda benar-benar menginginkan alias yang berbeda, Anda harus memperbarui setiap referensi s1as di domain.xml agar sesuai.
- Alias yang salah saat impor. Ketika CA mengembalikan sertifikat yang telah ditandatangani, Anda harus mengimpornya kembali ke alias yang sama yang menyimpan kunci privat. Mengimpor di bawah alias baru akan menyimpan sertifikat sebagai entri terpercaya yang berdiri sendiri tanpa kunci privat yang terhubung, dan TLS tidak akan berfungsi.
Catat ketiga nilai ini sebelum Anda menutup terminal:
- Alias (default s1as; pertahankan).
- Path file keystore, misalnya glassfish/domains/domain1/config/keystore.p12 (atau keystore.jks pada versi yang lebih lama).
- Kata sandi keystore (yang harus sama dengan master password domain).
Verifikasi CSR sebelum mengirimkannya
Temukan kesalahan ketik dalam DN atau SAN yang hilang sebelum CA memvalidasinya. Tampilkan CSR dengan keytool:
keytool -printcertreq -file glassfish.csr
Atau, jika OpenSSL sudah terinstal, gunakan itu sebagai gantinya:
openssl req -noout -text -in glassfish.csr
Konfirmasi tiga hal dalam output: Subject menunjukkan DN Anda yang tepat, Subject Alternative Name mencantumkan setiap hostname yang Anda butuhkan, dan ukuran Public-Key sesuai dengan yang Anda minta (RSA 2048-bit, atau apa pun yang Anda pilih). Anda juga dapat menempelkan CSR ke dalam CSR Decoder kami untuk pemeriksaan yang sama di dalam browser.
Kirim CSR ke Certificate Authority Anda
Buka glassfish.csr di editor teks apa pun. File tersebut berupa teks biasa, dimulai dengan —–BEGIN CERTIFICATE REQUEST—– dan diakhiri dengan —–END CERTIFICATE REQUEST—–. Salin seluruh blok tersebut, termasuk baris header dan footer tersebut, dan tempelkan ke kolom CSR saat proses checkout dengan CA Anda. Di Windows, gunakan Ctrl + A lalu Ctrl + C untuk mengambil seluruh teks; di macOS, gunakan Cmd + A lalu Cmd + C.
Setelah CA memvalidasi permintaan Anda dan menerbitkan sertifikat, lanjutkan dengan cara menginstal sertifikat SSL Anda di GlassFish. Anda akan mengimpor rantai CA sebagai terpercaya, lalu mengimpor sertifikat yang telah ditandatangani kembali ke alias s1as di file keystore yang sama (keystore.p12 pada 7.1+, keystore.jks pada versi yang lebih lama), dan akhirnya mengarahkan listener HTTPS ke alias tersebut.
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

