Topik ini menjelaskan cara menginstal dan mengonfigurasi Sertifikat SSL pada server GlassFish, mencakup pengunduhan dan pengunggahan file sertifikat, konfigurasi sertifikat, rantai sertifikat, dan kunci privat, serta verifikasi instalasi.
Topik ini menggunakan kontainer domain1 default di GlassFish 4.1.2-web pada Linux sebagai contoh. Langkah-langkahnya dapat berbeda tergantung sistem operasi atau versi GlassFish yang Anda gunakan.
Sebelum memulai
Anda telah membeli dan mengajukan sertifikat melalui SSL Certificates Service, dan Status-nya adalah Issued. Untuk membeli dan mengajukan sertifikat, lihat Purchase a paid certificate dan Apply for a certificate.
Nama domain Anda telah di-resolve dengan benar ke server saat ini.
Anda memiliki izin administratif pada server ini (akun root atau akun dengan izin sudo).
Prosedur
Langkah 1: Unduh Sertifikat SSL
Pada halaman SSL Certificates, temukan sertifikat yang ingin Anda terapkan dan konfirmasi informasi berikut:
Certificate Status: Pastikan statusnya adalah Issued. Jika statusnya About to Expire atau Expired, Anda harus renew the SSL certificate.
Bound Domains: Pastikan sertifikat mencakup semua nama domain yang ingin Anda lindungi. Jika tidak, browser akan menampilkan peringatan keamanan ketika pengguna mengakses nama domain yang tidak sesuai melalui HTTPS. Untuk menambah atau mengubah nama domain, lihat Add and replace domain names.
Pada kolom Actions sertifikat target, klik More untuk membuka halaman detail sertifikat. Pada tab Download, unduh sertifikat yang Server Type-nya adalah Other.
Ekstrak paket sertifikat yang telah diunduh.
Jika paket berisi file sertifikat (.pem) dan file kunci privat (.key), simpan kedua file tersebut secara aman. Anda memerlukannya untuk penerapan.
Jika paket hanya berisi file sertifikat (.pem) tanpa file kunci privat (.key), Anda harus menerapkan sertifikat bersama file kunci privat yang telah Anda simpan secara lokal.
CatatanJika Anda membuat file permintaan penandatanganan sertifikat (CSR) menggunakan tool seperti OpenSSL atau Keytool saat mengajukan sertifikat, file kunci privat hanya disimpan di mesin lokal Anda dan tidak termasuk dalam paket yang diunduh. Jika kunci privat hilang, sertifikat menjadi tidak dapat digunakan. Anda harus purchase a paid certificate dan membuat CSR serta kunci privat baru.
Langkah 2: Instal sertifikat pada GlassFish
Login ke server Linux Anda.
Server Alibaba Cloud
Operasi berikut menggunakan instans ECS Alibaba Cloud sebagai contoh. Untuk jenis server lain, lihat dokumentasi masing-masing.
Login ke Konsol ECS. Di bilah navigasi atas, pilih wilayah tempat instans ECS target berada.
Di panel navigasi kiri, pilih . Pada halaman Instances, temukan instans ECS target lalu klik Remote Connection di kolom Remote connection.
Pada kotak dialog yang muncul, pilih Workbench lalu klik Sign in now.
Pilih Terminal Connection sebagai metode koneksi, masukkan informasi autentikasi, lalu ikuti petunjuk di layar untuk menyelesaikan login. Anda kemudian dapat mengakses terminal server. Untuk informasi lebih lanjut, lihat Connect to an ECS instance by using Workbench.
CatatanJika panel Security Group Whitelist Opening Prompt muncul, klik Add Rule sesuai petunjuk.
Penyedia cloud lain
Gunakan fitur koneksi jarak jauh yang disediakan oleh penyedia cloud untuk login ke terminal server.
Server on-premises
Gunakan tool SSH di mesin lokal Anda untuk login ke terminal server.
Windows: Jalankan perintah
ssh <username>@<server_ip_address>di Command Prompt (cmd) atau PowerShell. Jika perintah ssh tidak didukung, Anda dapat menggunakan tool pihak ketiga seperti PuTTY atau WinSCP untuk membuat koneksi.macOS/Linux: Jalankan perintah
ssh <username>@<server_ip_address>di terminal bawaan.
Beberapa perintah berikut berbeda tergantung sistem operasi. Pilih perintah yang sesuai dengan OS server Anda.
Seri RHEL/CentOS: mencakup Alibaba Cloud Linux, Red Hat Enterprise Linux, CentOS, AlmaLinux, Rocky Linux, Anolis OS, dan turunannya.
Seri Debian/Ubuntu: mencakup Debian, Ubuntu, dan turunannya.
Buka port 443 di security group dan firewall.
Jalankan perintah berikut di terminal server untuk memeriksa apakah port 443 terbuka:
RHEL/CentOS
command -v nc > /dev/null 2>&1 || sudo yum install -y nc # Ganti <your_server_public_ip_address> 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_address> 443Jika output berisi
Ncat: Connected to <your_server_public_ip_address>:443, port 443 terbuka. Jika tidak, Anda harus membuka port 443 di security group dan firewall.Debian/Ubuntu
command -v nc > /dev/null 2>&1 || sudo apt-get install -y netcat # Ganti <your_server_public_ip_address> 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_address> 443Jika output berisi
Connection to <your_server_public_ip_address> port [tcp/https] succeeded!atau[<your_server_public_ip_address>] 443 (https) open, port 443 terbuka. Jika tidak, Anda harus membuka port 443 di security group dan firewall.Buka port 443 di security group.
PentingJika server Anda diterapkan di platform cloud, pastikan security group-nya mengizinkan lalu lintas inbound pada port TCP 443. Jika tidak, layanan tidak dapat diakses dari internet. Operasi berikut menggunakan instans ECS Alibaba Cloud sebagai contoh. Untuk platform cloud lain, lihat dokumentasi resmi masing-masing.
Buka halaman ECS Instances lalu klik nama instans target untuk membuka halaman detailnya. Untuk informasi lebih lanjut, lihat Add a security group rule. Tambahkan aturan ke security group 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).
Buka port 443 di firewall.
Jalankan perintah berikut untuk mengidentifikasi layanan firewall yang aktif di sistem Anda:
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-nya
none, tidak diperlukan tindakan lebih lanjut. Jika tidak, berdasarkan jenis firewall (firewalld,ufw,nftables, atauiptables), jalankan perintah yang sesuai untuk membuka port 443: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 mencegah aturan iptables hilang setelah reboot sistem, jalankan perintah berikut agar aturan tetap ada:
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
Buat direktori untuk menyimpan sertifikat.
Masuk ke direktori instalasi GlassFish (contoh ini menggunakan
/home/glassfish4), buat direktori bernamacert, lalu masuk ke dalamnya.cd /home/glassfish4 mkdir cert cd certUnggah file sertifikat dan kunci privat ke direktori
cert.CatatanAnda dapat menggunakan fitur unggah file lokal dari tool login jarak jauh untuk mengunggah file. Contoh tool tersebut antara lain PuTTY, Xshell, atau WinSCP. Jika Anda menggunakan instans Elastic Compute Service Alibaba Cloud, lihat Upload or download files untuk informasi lebih lanjut.
Konversi sertifikat dari format PEM ke PKCS12.
GlassFish menggunakan format keystore JKS, sehingga Anda harus mengonversi sertifikat PEM ke format PKCS12 terlebih dahulu. Di direktori
cert, jalankan perintah berikut untuk menghasilkan file bernamamycert.p12dengan aliass1as.openssl pkcs12 -export -in domain_name.pem -inkey domain_name.key -out mycert.p12 -name s1asCatatanGanti
domain_name.pemdandomain_name.keydengan path aktual file sertifikat dan kunci privat Anda.Saat diminta, atur kata sandi ekspor. Kami menyarankan menggunakan kata sandi keystore GlassFish default (keystore.jks), yaitu
changeit, untuk menghindari masalah konfigurasi di kemudian hari. Jika Anda menggunakan kata sandi berbeda, Anda harus menyinkronkan kata sandi entri kunci pada langkah selanjutnya.
Hentikan layanan GlassFish.
Hentikan layanan sebelum memodifikasi keystore dan konfigurasi:
/home/glassfish4/glassfish/bin/asadmin stop-domain domain1Backup file keystore dan konfigurasi.
Untuk mencegah kegagalan startup akibat kesalahan konfigurasi, backup file keystore GlassFish default
keystore.jksdan file konfigurasi domain.cp /home/glassfish4/glassfish/domains/domain1/config/keystore.jks /home/glassfish4/glassfish/domains/domain1/config/keystore.jks.bak cp /home/glassfish4/glassfish/domains/domain1/config/domain.xml /home/glassfish4/glassfish/domains/domain1/config/domain.xml.bakHapus alias sertifikat default.
Secara default, GlassFish menggunakan alias
s1asuntuk komunikasi SSL. Hapus entri default ini dari keystore agar Anda dapat menggantinya dengan sertifikat Anda.keytool -delete -alias s1as -keystore /home/glassfish4/glassfish/domains/domain1/config/keystore.jksSaat diminta, masukkan kata sandi keystore.jks. Kata sandi default-nya adalah
changeit.Impor sertifikat baru ke keystore.
Impor
mycert.p12ke keystorekeystore.jksdengan aliass1as.keytool -importkeystore \ -srckeystore mycert.p12 -srcstoretype PKCS12 \ -destkeystore /home/glassfish4/glassfish/domains/domain1/config/keystore.jks \ -deststoretype JKS \ -alias s1asSaat diminta, masukkan kata sandi berikut:
Destination keystore password: Masukkan kata sandi
keystore.jks(default:changeit).Source keystore password: Masukkan kata sandi ekspor yang Anda atur untuk
mycert.p12pada Langkah 5.Jika kata sandi ekspor untuk
mycert.p12berbeda dari kata sandikeystore.jks, jalankan perintah berikut untuk menyinkronkan kata sandi entri kunci:keytool -keypasswd -alias s1as \ -keystore /home/glassfish4/glassfish/domains/domain1/config/keystore.jks \ -storepass <keystore.jks_password> \ -keypass <mycert.p12_export_password> \ -new <keystore.jks_password>
Perbarui konfigurasi port.
Edit
/home/glassfish4/glassfish/domains/domain1/config/domain.xml. Temukan bagian<network-listeners>lalu ubah port HTTP dan HTTPS menjadi 80 dan 443 seperti ditunjukkan di bawah:<network-listeners> <network-listener protocol="http-listener-1" port="80" name="http-listener-1" thread-pool="http-thread-pool" transport="tcp"></network-listener> <network-listener protocol="http-listener-2" port="443" name="http-listener-2" thread-pool="http-thread-pool" transport="tcp"></network-listener> <network-listener protocol="admin-listener" port="4848" name="admin-listener" thread-pool="admin-thread-pool" transport="tcp"></network-listener> </network-listeners>Jalankan layanan GlassFish.
cd /home/glassfish4/glassfish/bin sudo ./asadmin start-domain domain1
Langkah 3: Verifikasi instalasi
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 telah 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.
FAQ
Sertifikat tidak berfungsi atau HTTPS tidak dapat diakses
Penyebab umum meliputi:
Port 443 tidak terbuka di security group atau firewall. Lihat Open port 443 in the security group and firewall.
Bound Domains sertifikat tidak mencakup domain yang Anda akses. Lihat Verify that the certificate matches the target domains.
Layanan GlassFish tidak di-restart setelah Anda memodifikasi konfigurasi. Untuk me-restart layanan, lihat Start the GlassFish service.
File sertifikat tidak diganti dengan benar, atau path sertifikat dalam konfigurasi GlassFish salah. Verifikasi bahwa konfigurasi dan file sertifikat Anda saat ini 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 troubleshooting lebih lanjut, lihat Troubleshoot certificate deployment issues based on browser errors dan SSL certificate deployment troubleshooting guide.
Perbarui Sertifikat SSL yang telah diinstal
Backup file sertifikat asli (.pem dan .key) di server Anda. Kemudian, login ke konsol Certificate Management Service, unduh file sertifikat baru, lalu unggah ke server untuk menimpa file aslinya. Pastikan path dan nama file tetap sama. Terakhir, restart layanan GlassFish agar sertifikat baru berlaku.