Memperbarui Sertifikat SSL EJBCA yang Expired

Beberapa saat yang lalu, tiba-tiba saja sistem aplikasi oprekan yang dibuat oleh tim saya (dan terhubung dengan EJBCA) tidak bisa melakukan penerbitan sertifikat. Setelah dicari tahu penyebabnya, ternyata karena sertifikat SSL yang ada pada EJBCA sudah habis masa berlakunya. Hal tersebut terlihat dari log aplikasi yang berbunyi:

Caused by: java.security.cert.CertificateExpiredException: NotAfter: Sun Feb 07 14:16:21 WIB 2021

Dan ternyata memang benar. Setelah diperiksa masa berlaku sertifikat SSLnya melalui browser, masa berlakunya sudah lama sekali habis.

Masa aktif sertifikat SSL yang sudah habis

Tidak ada pilihan untuk memperbaikinya selain menerbitkan sertifikat SSL yang baru untuk halaman EJBCA. Lantas bagaimana cara menerbitkannya? Ada 3 cara untuk menerbitkan sertifikat SSL yang baru. Cara pertama adalah via GUI (Graphical User Interface) dan 2 cara lainnya adalah via CLI (Command Line Interface).

Mari kita mulai dari cara yang pertama

via GUI

  1. Masuk ke dalam halaman administration EJBCA via browser.
  2. Arahkan perhtatian kalian pada submenu RA Functions dan pilih Search End Entities.
  3. Pada bagian Search end entity with username, kalian masukkan: tomcat. Kemudian tekan tombol search untuk melakukan pencarian

    mencari sertifikat dengan username tomcat
  4. Ya, tomcat merupakan username yang kalian cari. Saat sudah mendapatkan hasilnya, tekan tombol Edit End Entity pada bagian paling kanan di sebelah status: generated.

    edit end entity
  5. Akan banyak field yang muncul dari entitas ini. Kalian tidak perlu pusing. Arahakan saja pandangan kalian pada bagian teratas dari pop-up menu yang muncul setelah kalian menekan tombol Edit End Entity.
    Pertama, ubah statusnya dari Generated menjadi New.
    Kedua, masukkan password untuk sertifikat yang akan diterbitkan ini. Kalian boleh menyamakannya dengan password yang lama atau bisa mengubahnya dengan yang baru. Di mana kalian bisa melihat password yang lama? Lokasinya ada di $EJBCA_HOME/conf/web.properties dan cari httpsserver.password
    Pastikan password dan confirm password memiliki isi yang sama.
    Ketiga, tekan tombol save dan tutup tab tersebut.

    Melakukan perubahan pada End Entity
  6. Pekerjaan di halaman administration EJBCA sudah selesai. Sekarang waktunya masuk ke halaman depan EJBCA dan lakukan penerbitan.
    Arahkan pandangan ke submenu Retrieve dan pilih Fetch CA Certificates. Jika sudah, maka halaman Keystore Enrollment akan muncul di sisi sebelah kanan. Masukkan tomcat pada bagian username dan isi dengan password yang kalian masukkan saat mendaftarkan user tomcat tadi untuk penerbitan. Tekan OK jika sudah selesai.

    Bersiap untuk penerbitan
  7. Usai menekan tombol OK, halaman akan berubah dari Keystore Enrollment menjadi EJBCA Token Certificate Enrollment. Perhatikan bagian Options.
    Silakan kalian menentukan key length untuk sertifikat yang akan kalian terbitkan. Pada contoh kali ini, saya mengisinya dengan 2048 bits.
    Sedangkan pada bagian Certificate Profile, kalian tidak perlu mengutak-atiknya. Biarkan saja pilihannya tetap SERVER. Setelah itu tekan tombol Enroll untuk melakukan penerbitan.
    Tunggu beberapa saat dan file-nya otomatis akan terunduh ke laptop/PC kalian.

    penerbitan tomcat.jks
  8. Ukuran filenya kurang lebih 5KB dengan nama tomcat.jks

    ini filenya
  9. Copy-kan file tomcat.jks ke dalam server EJBCA dengan cara yang kalian suka.
  10. Masuk ke dalam server EJBCA via ssh.
  11. Default usia dari sertifikat SSL yang digunakan untuk JBoss ini adalah 2 tahun dan tersimpan di dalam direktori $JBOSS_HOME/standalone/configuration/keystore/ dengan nama keystore.jks
    Silakan copy file tomcat.jks yang sudah kalian kirim ke server EJBCA dan ubah dengan nama keystore.jks. File lama dengan nama yang sama bisa kalian ubah namanya atau hapus saja. Perintahnya:

    cd $JBOSS_HOME/standalone/configuration/keystore/
    ls
    mv keystore.jks keystore.jks.old
    mv /home/xxxx/tomcat.jks keystore.jks
    Meng-copy file tomcat.jks dan mengubahnya menjadi keystore.jks

    Jangan lupa ubah owner-nya menjadi sama dengan owner yang menjalankan service Jboss.

  12. Jika sudah, restart service JBoss dan pastikan service-nya berjalan dengan baik. Pantau log-nya di $JBOSS_home/standalone/log/server.log
    cd $JBOSS_HOME/bin
    nohup ./standalone.sh -b 0.0.0.0 -bmanagement=0.0.0.0 &
    tail -100f $JBOSS_HOME/standalone/log/server.log
    Menyalakan service jboss

    Pastikan lognya berjalan dengan baik
  13. Kembali akses halaman administration EJBCA dan voilaaa, sertifikat SSL sudah berhasil diperbarui

    Masa aktif sertifikat sudah diperbarui

Via CLI 1

Jika dirasa cara memperbarui sertifikat via GUI terlalu panjang, cobalah melalui CLI yang lebih simple. Tahapannya adalah seperti berikut:

  1. Masuk ke dalam server EJBCA
  2. Pindah ke dalam direktori $EJBCA_HOME
  3. Eksekusi perintah berikut
    cd $EJBCA_HOME
    bin/ejbca.sh ra setendentitystatus tomcat 10
    bin/ejbca.sh ra setclearpwd tomcat <password>
    bin/ejbca.sh batch tomcat
    cp p12/tomcat.jks $JBOSS_HOME/standalone/configuration/keystore/keystore.jks

    Usahakan password yang kalian masukkan sama dengan yang berada di httpsserver.password pada file $EJBCA_HOME/conf/web.properties

  4. Restart JBoss dengan cara yang sama pada bagian “via GUI”, pastikan lognya berjalan dengan baik, dan silakan akses halaman Administration EJBCA untuk melihat perubahan masa berlaku sertifikat SSL.

Via CLI 2

Cara yang terakhir ini adalah yang paling pendek dan memang saya sengaja menuliskannya di bagian akhir. Tahapannya jauh lebih pendek dari “via CLI 1”, yaitu dengan perintah ant. Caranya:

cd $EJBCA_HOME
ant renew-keystore
cp p12/tomcat.jks $JBOSS_HOME/standalone/configuration/keystore/keystore.jks

Pada tahapan ant renew-keystore, kalian akan diminta untuk memasukkan password  untuk truststore dan keystore. Masukkan sesuai dengan yang ada pada $EJBCA_HOME/conf/web.properties. 

Proses memasukkan password

Hanya 1 kali itu saja kalian diminta untuk memasukkan password, selebihnya kalian diminta untuk menunggu hingga prosesnya selesai.

tomcat.jks berhasil di-generate

Jika sudah menjalankan perintah tersebut, jangan lupa untuk me-restart service JBoss dengan cara yang sama pada bagian “via GUI”, pastikan lognya berjalan dengan baik, dan silakan akses halaman Administration EJBCA untuk melihat perubahan masa berlaku sertifikat SSL.

*****

Itu tadi beberapa cara untuk memperbarui sertifikat SSL yang sudah habis masa berlakunya. Silakan pilih yang kalian suka ya. Sampai jumpa di tulisan selanjutnya

Catatan: Sudah diuji coba pada EJBCA versi 6.2.0 dan 6.15.1.2 

Facebook Comments Box