Instalasi Signserver 4.0.0 pada WildFly 10.1.0 di CentOS 6.10

Signserver merupakan layanan digital yang digunakan sebagai segel elektronik pada sebuah dokumen yang sudah ditanda tangan secara digital. Setiap dokumen yang disegel secara otomatis akan menggunakan sertifikat digital dan ditambahkan timestamp yang berasal dari penyedia jasa timestamping.

Tidak hanya itu, dengan Signserver Validators, kalian bisa memvalidasi dokumen, yang didukung dengan fitur CRL ataupun OCSP.  Fitur lengkap dari Signserver bisa langsung dibaca DI SINI.

Sebelum memulai proses instalasi Signserver, ada baiknya bila kalian mempersiapkan kopi satu gelas dan beberapa alat, serta bahan berikut:

Alat dan Bahan

  1. Apache ANT 1.9.7 → Cara installnya bisa dilihat DI SINI
  2. Signserver CE 4.0.0 → Download DI SINI
  3. WildFly 10.1.0 Final → Download DI SINI
  4. MariaDB Java Client 2.1.0 → Download DI SINI
  5. OpenJDK 8
  6. JCE Policy 8 → Download DI SINI

*Setelah berhasil mengunduh semua file di atas, letakkan di dalam folder /opt.

Spek Server yang Digunakan

  1. RAM = 2 GB
  2. CPUs = 2
  3. Harddisk = 50 GB
  4. OS = CentOS 6.10

Tahap Awal

Pengaturan FQDN

Pertama kali yang kalian lakukan adalah Setting FQDN-nya terlebih dahulu, caranya:

vi /etc/hosts

/etc/hosts

Konfigurasi Firewall

Tidak berbeda jauh dengan EJBCA, Signserver pun menggunakan port 8080, 8442, 8443 untuk servisnya. Yang lainnya merupakan port internal (3306 untuk MySQL, 9990 untuk JBoss Admin, dll). Kita tidak perlu mengubah port tersebut pada aplikasi Signserver secara langsung.

Jika kita mau menggunakan port standar yang digunakan WEB, silahkan atur Port Forwarding pada iptables. Kita bisa melakukannya dengan cara:

vi /etc/sysconfig/iptables

kemudian masukkan:

#### Start Iptables ####

*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [34:14652]
-A INPUT -p tcp -m tcp –dport 8008 -j ACCEPT
-A INPUT -p tcp -m tcp –dport 4447 -j ACCEPT
-A INPUT -m state –state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -i eth0 -p tcp -m state –state NEW -m tcp –dport 8080 -m mark –mark 0x64 -j ACCEPT
-A INPUT -p tcp -m state –state NEW -m tcp –dport 80 -j ACCEPT
-A INPUT -p tcp -m state –state NEW -m tcp –dport 8080 -j ACCEPT
-A INPUT -p tcp -m state –state NEW -m tcp –dport 8443 -j ACCEPT
-A INPUT -p tcp -m state –state NEW -m tcp –dport 8442 -j ACCEPT
-A INPUT -p tcp -m state –state NEW -m tcp –dport 443 -j ACCEPT
-A INPUT -p tcp -m state –state NEW -m tcp –dport 22 -j ACCEPT
-A INPUT -j REJECT –reject-with icmp-host-prohibited
-A FORWARD -j REJECT –reject-with icmp-host-prohibited
COMMIT

*nat
:PREROUTING ACCEPT [1928198:538190860]
:POSTROUTING ACCEPT [239877:14576705]
:OUTPUT ACCEPT [239877:14576705]
-A PREROUTING -i eth0 -p tcp -m tcp –dport 80 -m mark –mark 0x64 -j DNAT –to-destination :8080
COMMIT

*mangle
:PREROUTING ACCEPT [5793867:3540661671]
:INPUT ACCEPT [5504145:3514609021]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [4546890:3055306048]
:POSTROUTING ACCEPT [4546890:3055306048]
-A PREROUTING -i eth0 -p tcp -m tcp –dport 80 -j MARK –set-xmark 0x64/0xffffffff
COMMIT

Konfigurasi IPTables

 Setelah melakuan konfigurasi, untuk mengaktifkan iptables tersebut maka lakukan perintah berikut:

sh -c 'iptables-restore -t < /etc/sysconfig/iptables'

Instalasi Beberapa Paket

Kalian membutuhkan java agar software ini dapat running. Oleh sebab itu, kalian harus menginstalnya terlebih dahulu. Versi OpenJDK yang harus diinstal adalah versi 8. Caranya:

yum -y install java-1.8.0-openjdk java-1.8.0-openjdk-devel
Instalasi Java 8

Setelah selesai melakukan instalasi openjdk-8, tahapan selanjutnya adalah memilih java-1.8.0 tadi sebagai default. Caranya:

alternatives --config java
Memilih versi Java yang ingin digunakan

dan untuk lebih memastikan agar kita tidak salah memilih versi java yang akan kita gunakan, jalankan perintah:

java -version

Setelah itu, kita akan sedikit me-replace beberapa file yang ada di /usr/lib/jvm/java-1.8.0-openjdk.x86_64/jre/lib/security. 2 file yang harus di replace adalah local_policy.jar dan US_export_policy.jar.

Bagaimana cara me-replace-nya?

  1. Download JCE pada link yang sudah saya sertakan di atas.
  2. Setelah berhasil di download, ekstrak file tersebut dan kamu akan menemukan sebuah folder bernama jce_policy-8. Cara ekstraknya adalah seperti berikut:
    cd /opt
    unzip jce_policy-8.zip
  3. Setelah berhasil di ekstrak, copy-kan 2 file yang sudah saya sebutkan di atas ke dalam folder/usr/lib/jvm/java-1.8.0-openjdk.x86_64/jre/lib/security. Caranya:
    cp jce_policy-8/UnlimitedJCEPolicyJDK8/local_policy.jar /usr/lib/jvm/java-1.8.0-openjdk.x86_64/jre/lib/security
    cp jce_policy-8/UnlimitedJCEPolicyJDK8/US_export_policy.jar/usr/lib/jvm/java-1.8.0-openjdk.x86_64/jre/lib/security
    

Instalasi dan Konfigurasi MariaDB

Tahap berikutnya kita harus melakukan instalasi database kemudian konfigurasi. Konfigurasi yang saya lakukan disini hanyalah konfigurasi biasa tanpa security yang cukup baik (hanya untuk keperluan percobaan). Untuk kalian yang ingin mengimplementasikannya di production, pastikan mengamankan direktori mysql dan meng-update /etc/mysql/my.cnf sebelum menjalankan service database. Konfigurasi ini juga menggunakan utf-8 encoding. Mari kita mulai instalasinya terlebih dahulu:

Untuk melakukan instalasi mariaDB 10.2 (stable) pada CentOS 6.10. Tambahkan dulu repositorinya dengan cara:

# MariaDB 10.2 CentOS repository list - created 2018-07-10 17:39 UTC 
#http://downloads.mariadb.org/mariadb/repositories/ [mariadb] name = MariaDB baseurl = http://yum.mariadb.org/10.2/centos6-amd64 gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB gpgcheck=1

Setelah itu update paket CentOS dan install MariaDB 10.2. Caranya:

yum update
yum install MariaDB-server MariaDB-client

Setelah MariaDB selesai terinstal, tahap selanjutnya adalah mengubah beberapa konfigurasi yang ada pada my.cnf. Salah satunya adalah menambahkan binlog_format=row. Kalau menggunakan MariaDB, kemungkinan servicenya menolak untuk berjalan karena InnoDB tidak bisa memproses log binary-nya. Tambahkan binlog_format=row seperti konfigurasi di bawah untuk memecahkan masalah tersebut. Tambahkan juga beberapa item lain yang belum ada di my.cnf  kalian ya.

vi /etc/mysql/my.cnf
[client]
 port                    = 3306
 socket                  = /var/run/mysqld/mysqld.sock
 default-character-set   = utf8

[mysqld]
 user                    = mysql
 socket                  = /var/run/mysqld/mysqld.sock
 port                    = 3306
 basedir                 = /usr
 datadir                 = /var/lib/mysql
 tmpdir                  = /tmp
 lc_messages_dir         = /usr/share/mysql
 lc_messages             = en_US
 skip-external-locking

#UTF-8
 character-set-server    = utf8
 collation-server        = utf8_unicode_ci
 init-connect            = 'SET NAMES utf8'

bind-address             = 127.0.0.1
#Binary Logging
 log_bin                 = /var/log/mysql/mariadb-bin
 log_bin_index           = /var/log/mysql/mariadb-bin.index
 binlog_format           = ROW
 expire_logs_days        = 10
 max_binlog_size         = 100M
 server-id               = 1
 slow_query_log_file     = /var/log/mysql/mariadb-slow.log
 long_query_time         = 10

Setelah beres, jangan lupa untuk mengubah kepemilikan my.cnf tersebut menjadi milik mysql. caranya:

sudo chown mysql:mysql /etc/mysql/my.cnf

Pada konfigurasi my.cnf di atas, kita memasukkan lokasi untuk meletakkan log. Untuk mengamankan log tersebut (karena log tersebut mengandung data sertifikat kita), maka kita harus mengatur izin yang terbatas soal siapa yang bisa mengaksesnya. Caranya:

chown -R mysql:mysql /var/log/mysql
chmod -R 750 /var/log/mysql/

Setelah MariaDB terinstall dan konfigurasi dilakukan, tahap selanjutnya adalah me-restart service database, membuat database untuk Signserver CE 4.0.0, dan juga sebuah user untuk mengakses database Signserver tersebut (jangan menggunakan user root untuk Signserver dalam mengakses database-nya). Caranya:

service mysql restart
mysql -u root -p
create database <nama_db> CHARACTER SET utf8 COLLATE utf8_general_ci;
grant all privileges on <nama_db>.* to '<user>'@'<ip>' identified by '<password>'; flush privileges; exit
Create DB untuk Signserver dan User untuk mengaksesnya

Kalau sudah, lakukan verifikasi dengan cara login dengan menggunakan user yang baru saja kita buat tadi dan test aksesnya. Caranya:

mysql -u <user_db> -p
use <db_signserver>;
show grants for '<user_db>@'<ip>';
exit
Test user yang baru dibuat untuk signserver

Pada bagian akhir, restart service database tersebut dengan perintah:

service mysql restart

Membuat Struktur Direktori

Sekarang kalian akan membuat struktur direktori dari aplikasi itu sendiri. Saya memutuskan untuk meletakkan aplikasi-aplikasi yang saya butuhkan pada /opt. Secara default, Semua dokumentasi Signserver mengasumsikan kalian melakukan instalasi pada home direktori. Namun saya lebih senang untuk menggunakan simbolik link agar lebih mudah.

  • /opt kalian gunakan untuk meletakkan semua file sehingga kalian bisa dengan mudah menghapusnya dan memulai lagi dari awal.
  • Download WildFly 10.1.0 dan Signserver CE 4.0.0 dengan wget (link ada di “alat & bahan”) dan letakkan pada /opt.

Setelah semua file terdownload (dalam bentuk zip), lalu ekstrak dan buat beberapa link sebagai shortcut untuk menuju folder tersebut. Caranya:

sudo unzip wildfly-10.1.0.Final.zip
sudo unzip signserver-ce-4.0.0.zip
sudo ln -s /opt/signserver-ce-4.0.0 signserver
sudo ln -s /opt/wildfly-10.1.0.Final jboss

ketik perintah berikut

cd /home/user

vi .bashrc

dan masukkan beberapa path berikut ini:

export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk.x86_64/
export PATH=$PATH:$JAVA_HOME/bin

export JBOSS_HOME=/opt/jboss
export PATH=$PATH:$JBOSS_HOME/bin

export APPSRV_HOME=/opt/jboss
export PATH=$PATH:$JBOSS_HOME/bin

export ANT_OPTS="-Xmx512m -XX:MaxPermSize=128m"

export SIGNSERVER_HOME=/opt/signserver
export PATH=$SIGNSERVER_HOME/bin:$PATH

export SIGNSERVER_NODEID=node1
Menetapkan path

Menambahkan Database Driver ke dalam Wildfly

Kita akan melakukan hot-deploying pada penambahan driver database kali ini yaitu dengan memasukkannya secara langsung ke dalam direktori deployment. Driver tersebut akan diambil dan di deploy secara otomatis ketika Wildfly dijalankan.

Untuk mempermudah, kita akan meng-copy file driver tersebut dan mengubah namanya menjadi baru, tanpa ada embel-embel versi drivernya. Caranya:

cp mariadb-java-client-2.1.0.jar /opt/jboss/standalone/deployments/mariadb-java-client.jar
ls
deploy mariadb java client
  • /opt/jboss/ merupakan sebuah link yang saya buat untuk /opt/wildfly-10.0.0.final
  • Link driver database sudah saya sertakan di awal tutorial.

Konfigurasi Wildfly Instance (Standalone)

Pertama, kita akan melakukan konfigurasi Instance yang nanti akan digunakan oleh Signserver CE 4.0.0. Namanya “standalone”, dan hadir secara default dalam Wildfly 10.1.0.Final

Pada direktori /opt/jboss/bin terdapat sebuah script yang bernama standalone.sh yang merupakan titik utama dari Wildfly. Script ini memberi referensi pada sebuah file konfigurasi yang terletak pada folder yang sama bernama standalone.conf. Kita tidak akan memodifikasi script startup-nya, tapi kita perlu untuk memodifikasi file konfigurasinya.

Sebagai langkah awal, kita akan mem-backup file konfigurasi defaultnya terlebih dahulu. Caranya:

cd /opt/jboss/bin
cp standalone.conf standalone.conf.bak

File konfigurasi tersebut juga berisi satu set option JVM yang nantinya akan kita ubah sedikit. Ini bukanlah perubahan yang wajib, tapi perubahan tersebut dapat mengalokasikan memori lebih pada JVM.

  • Ada beberapa entri yang dinonaktifkan, namun yang penting di sini adalah JAVA_HOME dan JAVA_OPTS.

Secara default, direktori JAVA_HOME belum di set dan JAVA_OPTS hanya mengizinkan penggunaan memori sebesar 512Mib. Ubah kedua parameter tersebut menjadi seperti berikut:

File konfigurasi tersebut juga berisi satu set option JVM yang nantinya akan kita ubah sedikit. Ini bukanlah perubahan yang wajib, tapi perubahan tersebut dapat mengalokasikan memori lebih pada JVM.

  • Ada beberapa entri yang dinonaktifkan, namun yang penting di sini adalah JAVA_HOME dan JAVA_OPTS.

Secara default, direktori JAVA_HOME belum di set dan JAVA_OPTS hanya mengizinkan penggunaan memori sebesar 512Mib. Ubah kedua parameter tersebut menjadi seperti berikut:

vi standalone.conf
JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk.x86_64/
JAVA_OPTS="-Xms1024m -Xmx1024m -Djava.net.preferIPv4Stack=true"
Perubahan pada standalone.conf

Starting Wildfly

Beberapa tweak harus kalian lakukan setelah Wildfly berjalan. Karena beberapa perintah di atas ada yang dijalankan sebagai root, kalian akan membuat user io menjadi owner dari folder wildfly yang sudah kalian extract.

Maka jalankan perintah berikut:

chown -R io:io /opt/wildfly-10.1.0.Final

Sekarang dengan user io, kalian akan mengeksekusi file standalone.sh yang berada pada folder jboss. Langkah-langkahnya adalah sebagai berikut:

cd /opt/jboss/bin
nohup ./standalone.sh -b 0.0.0.0 -bmanagement=0.0.0.0 &
Menjalankan Service wildfly
  • &” digunakan agar jboss tetap berjalan saat kita keluar dari terminal.
  • “-b” adalah opsi untuk menentukan jboss.bind.address.
  • “0.0.0.0” berarti dapat diakses dari IP manapun.
bukti pada file nohup yang mengatakan kalau wildfly sudah berjalan

dari log diatas dapat dihasilkan beberapa poin, yaitu:

  • JBoss Admin Page dapat diakses dari IP manapun melalui browser.
  • alamat default URL untuk JBoss Admin tersebut adalah http://<ip atau domain>:9990/console/App.html
  • Ketika kita melihat proses ini pada log  → “started xxx of xxx services”  , maka JBoss sudah berjalan.

Konfigurasi User Admin untuk Wildfly Web

apabila kita mengakses console Wildfly via web pada tahap ini melalui http://<ip atau domain>:9990 maka yang tampil adalah seperti berikut:

Jboss console via web tapi masih belum memiliki admin

Hal itu disebabkan oleh belum adanya admin User yang dibuat untuk mengakses console tersebut. Untuk itu kita perlu membuatnya. Caranya:

cd /opt/jboss/bin
sh add-user.sh

Maka akan muncul pertanyaan seperti berikut:

What type of user do you wish to add?
 a) Management User (mgmt-users.properties)
 b) Application User (application-users.properties)
(a):

Enter the details of the new user to add.
Using realm 'ManagementRealm' as discovered from the existing property files.
Username : xxxx
Password recommendations are listed below. To modify these restrictions edit the add-user.properties configuration file.
 - The password should be different from the username
 - The password should not be one of the following restricted values {root, admin, administrator}
 - The password should contain at least 8 characters, 1 alphabetic character(s), 1 digit(s), 1 non-alphanumeric symbol(s)
Password :
WFLYDM0101: Password should have at least 1 digit.
Are you sure you want to use the password entered yes/no? yes
Re-enter Password :
What groups do you want this user to belong to? (Please enter a comma separated list, or leave blank for none)[ ]:
About to add user 'jadmin' for realm 'ManagementRealm'
Is this correct yes/no? yes
Added user 'xxxx' to file '/opt/wildfly-10.1.0.Final/standalone/configuration/mgmt-users.properties'
Added user 'xxxx' to file '/opt/wildfly-10.1.0.Final/domain/configuration/mgmt-users.properties'
Added user 'xxxx' with groups to file '/opt/wildfly-10.1.0.Final/standalone/configuration/mgmt-groups.properties'
Added user 'xxxx' with groups to file '/opt/wildfly-10.1.0.Final/domain/configuration/mgmt-groups.properties'
Is this new user going to be used for one AS process to connect to another AS process?
e.g. for a slave host controller connecting to the master or for a Remoting connection for server to server EJB calls.
yes/no? no
Menambahkan user untuk wildfly
  • “What type of user do you wish to add?” → isi dengan “a”
  • “Realm” → enter saja.
  • “username” → Isi dengan username yang kalian mau.
  • “Password” → Isi dengan password yang kalian mau.
  • “Re-Enter Password” → Ulangi kembali dengan password yang sama.
  • “is this correct” → pilih “yes”
  • “is this new user going to …..” → pilih “no”

Pada saat ini seharusnya kita sudah bisa mengakses interface dari Wildfly Web Console dan mengganti beberapa item. Namun pada saat ini kita belum perlu untuk mengganti apapun:

  • Ini adalah user spesifik untuk JBoss yang tidak digunakan dimanapun.
  • Ini adalah tahapan yang bagus untuk mengambil snapshot vm.

Sekarang mari kita coba user tersebut. caranya masuk ke browser dan ketikkan http://<ip atau domain>:9990/console/App.html. Maka akan muncul tampilan seperti berikut:

Wildfly web console

Masukkan username dan password sesuai dengan yang baru saja kita input. Apabila benar maka akan muncul tampilan seperti berikut:

Wildfly web login

Menambahkan Data Source

Sekarang service Wildfly sudah berjalan, kini kita bisa menambahkan data source. Kita akan melakukan ini melalui CLI-nya JBoss, yang akan mengupdate konfigurasi yang berada pada file Standalone.xml. Sebelum melakukan perubahan maka ada baiknya kita membackup konfigurasi awal terlebih dahulu. Caranya (masih dengan user jboss):

cd /opt/jboss/standalone/configuration
cp standalone.xml standalone.xml.bak

Sekarang kita akan menuju JBoss CLI dan melakukan beberapa perubahan. Caranya:

cd /opt/jboss/bin
sh jboss-cli.sh
connect

Lalu jalankan perintah berikut:

data-source add --name=SignServerDS --driver-name="mariadb-java-client.jar" --connection-url="jdbc:mysql://127.0.0.1:3306/signserver" --jndi-name="java:/SignServerDS" --use-ccm=true --driver-class="org.mariadb.jdbc.Driver" --user-name="signserver" --password="signserver" --validate-on-match=true --background-validation=false --prepared-statements-cache-size=50 --share-prepared-statements=true --min-pool-size=5 --max-pool-size=150 --pool-prefill=true --transaction-isolation=TRANSACTION_READ_COMMITTED --check-valid-connection-sql="select 1;"
:reload

Setelah perintah tersebut dieksekusi maka hasil keluarannya adalah “Success” (seperti pada gambar di bawah).

Sukses menambahkan datasource

Hal yang kita lakukan pada CLI ini mendefinisikan driver mariadb dan koneksi yang ada pada /opt/jboss/standalone/configuration/standalone.xml, kemudian me-reload JBoss.

Hasilnya akan terlihat pada standalone.xml seperti gambar berikut:

konfigurasi ini akan kalian temukan di standalone.xml

Sebagai bukti lagi kalau connector tersebut sudah masuk, kita akan melihat pada log yang tertera di file nohup.out yang ada pada folder /opt/jboss/bin. Namun sebelumnya kita harus me-restart service wildfly yang sedang berjalan. Caranya:

cd /opt/jboss/bin
ps -ax | grep jboss
kill <nomor pada ps-ax>
nohup ./standalone.sh -b 0.0.0.0 -bmanagement=0.0.0.0 &
tail -100f nohup.out

Ketika kalian menemukan org.mariadb.jdbc.driver, maka datasource tersebut sudah dapat dipastikan masuk.

Datasource Password

Untuk mengamankan password yang ada pada SignServerDS di atas agar tidak plain text pada saat ditampilkan di /opt/jboss/standalone/configuration/standalone.xml (Guna meningkatkan keamanan sistem), Jalankan perintah berikut:

  • Ganti PASSWORDLO dengan password database di atas.
java -cp /opt/jboss/modules/system/layers/base/org/picketbox/main/picketbox-4.9.4.Final.jar:/opt/jboss/modules/system/layers/base/org/jboss/logging/main/jboss-logging-3.3.0.Final.jar:$CLASSPATH org.picketbox.datasource.security.SecureIdentityLoginModule PASSWORDLO
Mendapatkan Encoded Password
  • copy dan paste encoded password di atas ke file standalone.xml:
vi /opt/jboss/standalone/configuration/standalone.xml
  • Paste segmen berikut pada segmen security-domains (dengan mengganti PASSWORDLO_ENC menjadi encoded password yang kita dapatkan dari perintah di atas dan USERLO dengan user untuk terkoneksi ke database)
<security-domain name="SignServerDSEncryptedPassword">
 <authentication>
 <login-module code="SecureIdentity" flag="required">
 <module-option name="username" value="USERLO"/>
 <module-option name="password" value="PASSWORDLO_ENC"/>
 </login-module>
 </authentication>
</security-domain>
Penambahan Security Domain
  • Lihat bagian SignServerDs datasource dan ganti segmen security (dimana PASSWORDLO adalah password lama dalam bentuk plain text):
<security>
 <user-name>USERLO</user-name>
 <password>PASSWORDLO</password>
</security>
  • Dengan bentuk berikut:
<security>
 <security-domain>SignServerDsEncryptedPassword</security-domain>
</security>

Restart kembali JBOSS

cd /opt/jboss/bin 
ps -ax | grep jboss kill <nomor pada ps-ax> 
nohup ./standalone.sh -b 0.0.0.0 -bmanagement=0.0.0.0 & 
tail -100f nohup.out

Konfigurasi Wildfly SSL

Konfigur interfaces dengan menggunakan bind addreess yang tepat (i.e. 0.0.0.0 or 127.0.0.1)

cd /opt/jboss/bin 
sh jboss-cli.sh 
connect
/interface=http:add(inet-address="0.0.0.0")
/interface=httpspub:add(inet-address="0.0.0.0")
/interface=httpspriv:add(inet-address="0.0.0.0")
/socket-binding-group=standard-sockets/socket-binding=http:add(port="8080",interface="http")
/subsystem=undertow/server=default-server/http-listener=http:add(socket-binding=http)
/subsystem=undertow/server=default-server/http-listener=http:write-attribute(name=redirect-socket, value="httpspriv")
:reload
konfigur interface

Menghapus TLS dan Konfigurasi HTTP yang Sudah Ada

Jalankan perintah berikut pada JBOSS CLI untuk menhapus konfigurasi TLS dan HTTP yang sudah ada (hanya untuk keamanan).

/subsystem=undertow/server=default-server/http-listener=default:remove
/subsystem=undertow/server=default-server/https-listener=https:remove
/socket-binding-group=standard-sockets/socket-binding=http:remove
/socket-binding-group=standard-sockets/socket-binding=https:remove
:reload
remove tls and http conf
Tunggu proses reload hingga benar-benar selesai dengan memeriksa log server sebelum melanjutkan ke proses selanjutnya.
Kemudian, amankan CLI dengan menghilangkan http-remoting-connector dari penggunaan http port dan sebagai gantinya gunakan port 4447
/subsystem=remoting/http-connector=http-remoting-connector:remove
/subsystem=remoting/http-connector=http-remoting-connector:add(connector-ref="remoting",security-realm="ApplicationRealm")
/socket-binding-group=standard-sockets/socket-binding=remoting:add(port="4447")
/subsystem=undertow/server=default-server/http-listener=remoting:add(socket-binding=remoting)
:reload

Tunggu sampai proses reload selesai dengan cara mengecek log yang ada pada nohup.out, baru kemudian lanjutkan ke proses berikutnya

Atur port privat yang membutuhkan sertifikat klien. Gunakan nilai yang tepat untuk key-alias (hostname), password (keystore password), ca-certificate-password (truststore password) dan protocol yang mendukung lainnya.

/socket-binding-group=standard-sockets/socket-binding=httpspriv:add(port="8443",interface="httpspriv")
/core-service=management/security-realm=SSLRealm:add()
/core-service=management/security-realm=SSLRealm/server-identity=ssl:add(keystore-path="keystore/keystore.jks", keystore-relative-to="jboss.server.config.dir", keystore-password="serverpwd", alias="localhost")
/core-service=management/security-realm=SSLRealm/authentication=truststore:add(keystore-path="keystore/truststore.jks", keystore-relative-to="jboss.server.config.dir", keystore-password="changeit")
/subsystem=undertow/server=default-server/https-listener=httpspriv:add(socket-binding="httpspriv", security-realm="SSLRealm", verify-client=REQUIRED)

Atur SSL port untuk publik yang tidak membutuhkan client certificate

/socket-binding-group=standard-sockets/socket-binding=httpspub:add(port="8442",interface="httpspub")
/subsystem=undertow/server=default-server/https-listener=httpspub:add(socket-binding="httpspub", security-realm="SSLRealm")
:reload

Perbaiki masalah pada web service dengan cara:

/subsystem=webservices:write-attribute(name=wsdl-host, value=jbossws.undefined.host)
/subsystem=webservices:write-attribute(name=modify-wsdl-address, value=true)
Fix web Service

Konfigur Deployment

Sekarang waktunya untuk konfigurasi file pada signserver. Masuk ke dalam folder signserver kemudian copy file yang dibutuhkan. Caranya:

cd /opt/signserver
cp conf/signserver_deploy.properties.sample conf/signserver_deploy.properties
vi conf/signserver_deploy.properties

Ubah isi file tersebut menjadi seperti berikut:

appserver.home=/opt/jboss
appserver.type=jboss
datasource.jndi-name=SignServerDS
database.name=mysql
database.url=jdbc:mysql://127.0.0.1:3306/<nama_db>?characterEncoding=UTF-8
database.driver=org.mariadb.jdbc.Driver
database.username=<user_db>
database.password=<password_db>

Deploy Signserver

Untuk melakukan deploy, masuk ke dalam direktori $SIGNSERVER_HOME, lalu jalankan perintah berikut:

ant deploy

Pastikan kalau hasil yang muncul adalah “build successful”. Setelah itu, kalian bisa memeriksa status dari signserver dengan mengetikkan perintah:

bin/signserver getstatus brief all
versi signserver akan muncul

dan untuk mengakses halaman webnya, ketikkan alamatnya pada browser:

http://localhost:8080/signserver
signserver berhasil terinstal

Itu tadi cara melakukan instalasi Signserver CE 4.0.0 pada CentOS 6.10. Semoga informasi tersebut bisa membantu kalian yang ingin mencobanya.

Sampai jumpa di Tutorial berikutnya 🙂

Facebook Comments Box

Comments are closed.