<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>instalasi signserver ce 4.0.0 - GoBlog</title>
	<atom:link href="https://blog.goreinnamah.com/blog/tag/instalasi-signserver-ce-4-0-0/feed/" rel="self" type="application/rss+xml" />
	<link>https://blog.goreinnamah.com</link>
	<description>LOG ALL LOGS</description>
	<lastBuildDate>Wed, 31 Oct 2018 10:49:18 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	

<image>
	<url>https://blog.goreinnamah.com/wp-content/uploads/2017/01/cropped-1-150x150.jpg</url>
	<title>instalasi signserver ce 4.0.0 - GoBlog</title>
	<link>https://blog.goreinnamah.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Instalasi Signserver 4.0.0 pada WildFly 10.1.0 di CentOS 6.10</title>
		<link>https://blog.goreinnamah.com/blog/2018/07/11/instalasi-signserver-4-0-0/</link>
					<comments>https://blog.goreinnamah.com/blog/2018/07/11/instalasi-signserver-4-0-0/#comments</comments>
		
		<dc:creator><![CDATA[Darius Go Reinnamah]]></dc:creator>
		<pubDate>Wed, 11 Jul 2018 14:06:47 +0000</pubDate>
				<category><![CDATA[Information Technology]]></category>
		<category><![CDATA[digital signing]]></category>
		<category><![CDATA[ejbca]]></category>
		<category><![CDATA[instalasi signserver ce 4.0.0]]></category>
		<category><![CDATA[signserver]]></category>
		<category><![CDATA[signserver 4.0.0]]></category>
		<category><![CDATA[signserver ce 4.0.0]]></category>
		<category><![CDATA[Tanda Tangan Digital]]></category>
		<guid isPermaLink="false">https://blog.goreinnamah.com/?p=2606</guid>

					<description><![CDATA[<p>Signserver merupakan layanan digital yang digunakan sebagai segel elektronik pada sebuah dokumen yang sudah ditanda tangan secara digital. Setiap dokumen[...]</p>
<p>The post <a href="https://blog.goreinnamah.com/blog/2018/07/11/instalasi-signserver-4-0-0/">Instalasi Signserver 4.0.0 pada WildFly 10.1.0 di CentOS 6.10</a> first appeared on <a href="https://blog.goreinnamah.com">GoBlog</a>.</p>]]></description>
										<content:encoded><![CDATA[<p style="text-align: justify;"><strong>Signserver</strong> 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 <em>timestamp </em>yang berasal dari penyedia jasa <em>timestamping.</em></p>
<p style="text-align: justify;">Tidak hanya itu, dengan <strong>Signserver Validators</strong>, kalian bisa memvalidasi dokumen, yang didukung dengan fitur CRL ataupun OCSP.  Fitur lengkap dari Signserver bisa langsung dibaca <strong><a href="https://www.signserver.org/features.html">DI SINI</a>.</strong></p>
<p style="text-align: justify;">Sebelum memulai proses instalasi Signserver, ada baiknya bila kalian mempersiapkan kopi satu gelas dan beberapa alat, serta bahan berikut:</p>
<h3 style="text-align: justify;"><strong>Alat dan Bahan</strong></h3>
<ol style="text-align: justify;">
<li>Apache ANT 1.9.7 → Cara installnya bisa dilihat <a href="https://blog.goreinnamah.com/blog/2018/07/09/apache-ant-1-9-7/"><strong>DI SINI</strong></a></li>
<li style="text-align: justify;">Signserver CE 4.0.0 → Download <a href="https://jaist.dl.sourceforge.net/project/signserver/signserver/4.0/signserver-ce-4.0.0-bin.zip"><strong>DI SINI</strong></a></li>
<li style="text-align: justify;">WildFly 10.1.0 Final → Download <a href="http://download.jboss.org/wildfly/10.1.0.Final/wildfly-10.1.0.Final.zip"><strong>DI SINI</strong></a></li>
<li style="text-align: justify;">MariaDB Java Client 2.1.0 → Download <a href="http://central.maven.org/maven2/org/mariadb/jdbc/mariadb-java-client/2.1.0/mariadb-java-client-2.1.0.jar"><strong>DI SINI</strong></a></li>
<li style="text-align: justify;">OpenJDK 8</li>
<li style="text-align: justify;">JCE Policy 8 → Download <a href="http://download.oracle.com/otn-pub/java/jce/8/jce_policy-8.zip?AuthParam=1521531388_8329e84a9d4f3bdefb8c877c2832cccc"><strong>DI SINI</strong></a></li>
</ol>
<p style="text-align: justify;">*Setelah berhasil mengunduh semua file di atas, letakkan di dalam folder <strong>/opt</strong>.</p>
<h3 style="text-align: justify;"><strong>Spek Server yang Digunakan</strong></h3>
<ol style="text-align: justify;">
<li>RAM = 2 GB</li>
<li>CPUs = 2</li>
<li>Harddisk = 50 GB</li>
<li>OS = CentOS 6.10</li>
</ol>
<h2 style="text-align: justify;"><strong>Tahap Awal</strong></h2>
<h3 style="text-align: justify;"><strong>Pengaturan FQDN</strong></h3>
<p style="text-align: justify;">Pertama kali yang kalian lakukan adalah Setting FQDN-nya terlebih dahulu, caranya:</p>
<pre><span style="color: #ff0000;"><strong>vi /etc/hosts</strong></span></pre>
<figure id="attachment_2087" class="wp-caption alignnone" style="text-align: justify;">
<p><figure id="attachment_2613" aria-describedby="caption-attachment-2613" style="width: 358px" class="wp-caption aligncenter"><img decoding="async" class="size-full wp-image-2613" src="https://blog.goreinnamah.com/wp-content/uploads/2018/07/35.png" alt="" width="358" height="28" srcset="https://blog.goreinnamah.com/wp-content/uploads/2018/07/35.png 358w, https://blog.goreinnamah.com/wp-content/uploads/2018/07/35-300x23.png 300w" sizes="(max-width: 358px) 100vw, 358px" /><figcaption id="caption-attachment-2613" class="wp-caption-text">/etc/hosts</figcaption></figure></figure>
<h3 style="text-align: justify;"><strong>Konfigurasi Firewall</strong></h3>
<p style="text-align: justify;">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.</p>
<p style="text-align: justify;">Jika kita mau menggunakan port standar yang digunakan WEB, silahkan atur Port Forwarding pada iptables. Kita bisa melakukannya dengan cara:</p>
<pre><span style="color: #ff0000;"><strong>vi /etc/sysconfig/iptables</strong></span></pre>
<p style="text-align: justify;">kemudian masukkan:</p>
<h4 style="text-align: justify;">#### Start Iptables ####</h4>
<p style="text-align: justify;">*<strong>filter</strong><br />
<strong>:INPUT ACCEPT [0:0]</strong><br />
<strong>:FORWARD ACCEPT [0:0]</strong><br />
<strong>:OUTPUT ACCEPT [34:14652]</strong><br />
<strong>-A INPUT -p tcp -m tcp –dport 8008 -j ACCEPT<br />
</strong><strong>-A INPUT -p tcp -m tcp –dport 4447 -j ACCEPT</strong><br />
<strong>-A INPUT -m state –state RELATED,ESTABLISHED -j ACCEPT</strong><br />
<strong>-A INPUT -p icmp -j ACCEPT</strong><br />
<strong>-A INPUT -i lo -j ACCEPT</strong><br />
<strong>-A INPUT -i eth0 -p tcp -m state –state NEW -m tcp –dport 8080 -m mark –mark 0x64 -j ACCEPT</strong><br />
<strong>-A INPUT -p tcp -m state –state NEW -m tcp –dport 80 -j ACCEPT</strong><br />
<strong>-A INPUT -p tcp -m state –state NEW -m tcp –dport 8080 -j ACCEPT</strong><br />
<strong>-A INPUT -p tcp -m state –state NEW -m tcp –dport 8443 -j ACCEPT</strong><br />
<strong>-A INPUT -p tcp -m state –state NEW -m tcp –dport 8442 -j ACCEPT</strong><br />
<strong>-A INPUT -p tcp -m state –state NEW -m tcp –dport 443 -j ACCEPT</strong><br />
<strong>-A INPUT -p tcp -m state –state NEW -m tcp –dport 22 -j ACCEPT</strong><br />
<strong>-A INPUT -j REJECT –reject-with icmp-host-prohibited</strong><br />
<strong>-A FORWARD -j REJECT –reject-with icmp-host-prohibited</strong><br />
<strong>COMMIT</strong></p>
<p style="text-align: justify;"><strong>*nat</strong><br />
<strong>:PREROUTING ACCEPT [1928198:538190860]</strong><br />
<strong>:POSTROUTING ACCEPT [239877:14576705]</strong><br />
<strong>:OUTPUT ACCEPT [239877:14576705]</strong><br />
<strong>-A PREROUTING -i eth0 -p tcp -m tcp –dport 80 -m mark –mark 0x64 -j DNAT –to-destination :8080</strong><br />
<strong>COMMIT</strong></p>
<p style="text-align: justify;"><strong>*mangle</strong><br />
<strong>:PREROUTING ACCEPT [5793867:3540661671]</strong><br />
<strong>:INPUT ACCEPT [5504145:3514609021]</strong><br />
<strong>:FORWARD ACCEPT [0:0]</strong><br />
<strong>:OUTPUT ACCEPT [4546890:3055306048]</strong><br />
<strong>:POSTROUTING ACCEPT [4546890:3055306048]</strong><br />
<strong>-A PREROUTING -i eth0 -p tcp -m tcp –dport 80 -j MARK –set-xmark 0x64/0xffffffff</strong><br />
<strong>COMMIT</strong></p>
<figure id="attachment_2614" aria-describedby="caption-attachment-2614" style="width: 809px" class="wp-caption aligncenter"><img fetchpriority="high" decoding="async" class="size-full wp-image-2614" src="https://blog.goreinnamah.com/wp-content/uploads/2018/07/36.png" alt="" width="809" height="623" srcset="https://blog.goreinnamah.com/wp-content/uploads/2018/07/36.png 809w, https://blog.goreinnamah.com/wp-content/uploads/2018/07/36-300x231.png 300w, https://blog.goreinnamah.com/wp-content/uploads/2018/07/36-768x591.png 768w" sizes="(max-width: 809px) 100vw, 809px" /><figcaption id="caption-attachment-2614" class="wp-caption-text">Konfigurasi IPTables</figcaption></figure>
<p style="text-align: justify;"> Setelah melakuan konfigurasi, untuk mengaktifkan iptables tersebut maka lakukan perintah berikut:</p>
<pre><span style="color: #ff0000;"><strong>sh -c 'iptables-restore -t &lt; /etc/sysconfig/iptables'</strong></span></pre>
<h3 style="text-align: justify;">Instalasi Beberapa Paket</h3>
<p style="text-align: justify;">Kalian membutuhkan java agar software ini dapat <em>running</em>. Oleh sebab itu, kalian harus menginstalnya terlebih dahulu. Versi OpenJDK yang harus diinstal adalah versi 8. Caranya:</p>
<pre><span style="color: #ff0000;"><strong>yum -y install java-1.8.0-openjdk java-1.8.0-openjdk-devel</strong></span></pre>
<figure id="attachment_2090" class="wp-caption aligncenter" style="text-align: justify;"><figcaption class="wp-caption-text">
<figure id="attachment_2615" aria-describedby="caption-attachment-2615" style="width: 812px" class="wp-caption aligncenter"><img decoding="async" class="size-full wp-image-2615" src="https://blog.goreinnamah.com/wp-content/uploads/2018/07/37.png" alt="" width="812" height="271" srcset="https://blog.goreinnamah.com/wp-content/uploads/2018/07/37.png 812w, https://blog.goreinnamah.com/wp-content/uploads/2018/07/37-300x100.png 300w, https://blog.goreinnamah.com/wp-content/uploads/2018/07/37-768x256.png 768w" sizes="(max-width: 812px) 100vw, 812px" /><figcaption id="caption-attachment-2615" class="wp-caption-text">Instalasi Java 8</figcaption></figure>
</figcaption></figure>
<p style="text-align: justify;">Setelah selesai melakukan instalasi <strong>openjdk-8</strong>, tahapan selanjutnya adalah memilih <strong>java-1.8.0</strong> tadi sebagai <em>default. </em>Caranya:</p>
<pre><span style="color: #ff0000;"><strong>alternatives --config java</strong></span></pre>
<figure id="attachment_2091" class="wp-caption aligncenter" style="text-align: justify;"><figcaption class="wp-caption-text">
<figure id="attachment_2616" aria-describedby="caption-attachment-2616" style="width: 556px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="size-full wp-image-2616" src="https://blog.goreinnamah.com/wp-content/uploads/2018/07/38.png" alt="" width="556" height="255" srcset="https://blog.goreinnamah.com/wp-content/uploads/2018/07/38.png 556w, https://blog.goreinnamah.com/wp-content/uploads/2018/07/38-300x138.png 300w" sizes="auto, (max-width: 556px) 100vw, 556px" /><figcaption id="caption-attachment-2616" class="wp-caption-text">Memilih versi Java yang ingin digunakan</figcaption></figure>
</figcaption></figure>
<p style="text-align: justify;">dan untuk lebih memastikan agar kita tidak salah memilih versi java yang akan kita gunakan, jalankan perintah:</p>
<pre><span style="color: #ff0000;"><strong>java -version</strong></span></pre>
<p style="text-align: justify;">Setelah itu, kita akan sedikit me-<em>replace</em> beberapa file yang ada di <strong>/usr/lib/jvm/java-1.8.0-openjdk.x86_64/jre/lib/security. </strong>2 file yang harus di <em>replace </em>adalah <strong>local_policy.jar </strong>dan <strong>US_export_policy.jar.</strong></p>
<p style="text-align: justify;">Bagaimana cara me-<em>replace-</em>nya?</p>
<ol style="text-align: justify;">
<li>Download JCE pada link yang sudah saya sertakan di atas.</li>
<li>Setelah berhasil di download, ekstrak file tersebut dan kamu akan menemukan sebuah folder bernama <strong>jce_policy-8. </strong>Cara ekstraknya adalah seperti berikut:
<pre><span style="color: #ff0000;"><b>cd /opt
unzip jce_policy-8.zip</b></span></pre>
</li>
<li>Setelah berhasil di ekstrak, copy-kan 2 file yang sudah saya sebutkan di atas ke dalam folder<strong>/usr/lib/jvm/java-1.8.0-openjdk.x86_64/jre/lib/security</strong><strong>. </strong>Caranya:
<pre><span style="color: #ff0000;"><strong>cp jce_policy-8/UnlimitedJCEPolicyJDK8/local_policy.jar</strong> <strong>/usr/lib/jvm/java-1.8.0-openjdk.x86_64/jre/lib/security</strong><strong>
cp jce_policy-8/UnlimitedJCEPolicyJDK8/US_export_policy.jar/usr/lib/jvm/java-1.8.0-openjdk.x86_64/jre/lib/security
</strong></span></pre>
</li>
</ol>
<h3 style="text-align: justify;"><strong>Instalasi dan Konfigurasi MariaDB</strong></h3>
<p style="text-align: justify;">Tahap berikutnya kita harus melakukan instalasi <em>database</em> kemudian konfigurasi. Konfigurasi yang saya lakukan disini hanyalah konfigurasi biasa tanpa <em>s</em><em>ecurity </em>yang cukup baik (hanya untuk keperluan percobaan). Untuk kalian yang ingin mengimplementasikannya di production, pastikan mengamankan direktori mysql dan meng-<em>update </em><strong>/etc/mysql/my.cnf</strong> sebelum menjalankan service database. Konfigurasi ini juga menggunakan <strong>utf-8 encoding.</strong> Mari kita mulai instalasinya terlebih dahulu:</p>
<ul>
<li><strong>Baca juga</strong> <a href="https://blog.goreinnamah.com/blog/2018/05/05/mengelola-ca-pada-ejbca-6-10-1-2/"><em><strong>Cara mengelola CA pada EJBCA 6.10.1.2</strong></em></a></li>
</ul>
<p style="text-align: justify;">Untuk melakukan instalasi mariaDB 10.2 (stable) pada CentOS 6.10. Tambahkan dulu repositorinya dengan cara:</p>
<pre><strong><code>#</code> MariaDB 10.2 CentOS repository list - created 2018-07-10 17:39 UTC <code>
#</code><a href="http://downloads.mariadb.org/mariadb/repositories/">http://downloads.mariadb.org/mariadb/repositories/</a> [mariadb] name = MariaDB baseurl = <a href="http://yum.mariadb.org/10.2/centos6-amd64">http://yum.mariadb.org/10.2/centos6-amd64</a> gpgkey=<a href="https://yum.mariadb.org/RPM-GPG-KEY-MariaDB">https://yum.mariadb.org/RPM-GPG-KEY-MariaDB</a> gpgcheck=1</strong></pre>
<p style="text-align: justify;">Setelah itu update paket CentOS dan install MariaDB 10.2. Caranya:</p>
<pre><span style="color: #ff0000;"><strong>yum update</strong>
<strong>yum install MariaDB-server MariaDB-client</strong></span></pre>
<p style="text-align: justify;">Setelah MariaDB selesai terinstal, tahap selanjutnya adalah mengubah beberapa konfigurasi yang ada pada <em>my.cnf.</em> Salah satunya adalah menambahkan <em><strong>binlog_format=row</strong>. </em>Kalau menggunakan MariaDB, kemungkinan servicenya menolak untuk berjalan karena InnoDB tidak bisa memproses log binary-nya. Tambahkan <em>binlog_format=row </em>seperti konfigurasi di bawah untuk memecahkan masalah tersebut. Tambahkan juga beberapa item lain yang belum ada di <em>my.cnf  </em>kalian ya.</p>
<pre><span style="color: #ff0000;"><strong>vi /etc/mysql/my.cnf</strong></span></pre>
<pre><span style="color: #ff0000;"><strong>[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</strong></span></pre>
<p style="text-align: justify;"><span style="color: #000000;">S</span>etelah beres, jangan lupa untuk mengubah kepemilikan my.cnf tersebut menjadi milik mysql. caranya:</p>
<pre><span style="color: #ff0000;"><strong>sudo chown mysql:mysql /etc/mysql/my.cnf</strong></span></pre>
<p style="text-align: justify;">Pada konfigurasi <em>my.cnf </em>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:</p>
<pre><span style="color: #ff0000;"><strong>chown -R mysql:mysql /var/log/mysql
chmod -R 750 /var/log/mysql/</strong></span></pre>
<p style="text-align: justify;">Setelah MariaDB terinstall dan konfigurasi dilakukan, tahap selanjutnya adalah me-<em>restart service </em>database, membuat <em>database</em> untuk Signserver CE 4.0.0, dan juga sebuah user untuk mengakses <em>database</em> Signserver tersebut (jangan menggunakan user root untuk Signserver dalam mengakses <em>database</em>-nya). Caranya:</p>
<pre><span style="color: #ff0000;"><strong>service mysql restart</strong></span></pre>
<pre><span style="color: #ff0000;"><strong>mysql -u root -p
create database &lt;nama_db&gt; </strong><strong>CHARACTER SET utf8 COLLATE utf8_general_ci;</strong></span></pre>
<pre><span style="color: #ff0000;"><strong>grant all privileges on &lt;nama_db&gt;.* to '&lt;user&gt;'@'&lt;ip&gt;' identified by '&lt;password&gt;'; flush privileges; exit</strong></span></pre>
<figure id="attachment_2622" aria-describedby="caption-attachment-2622" style="width: 1005px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="size-full wp-image-2622" src="https://blog.goreinnamah.com/wp-content/uploads/2018/07/13.png" alt="" width="1005" height="202" srcset="https://blog.goreinnamah.com/wp-content/uploads/2018/07/13.png 1005w, https://blog.goreinnamah.com/wp-content/uploads/2018/07/13-300x60.png 300w, https://blog.goreinnamah.com/wp-content/uploads/2018/07/13-768x154.png 768w" sizes="auto, (max-width: 1005px) 100vw, 1005px" /><figcaption id="caption-attachment-2622" class="wp-caption-text">Create DB untuk Signserver dan User untuk mengaksesnya</figcaption></figure>
<p style="text-align: justify;">Kalau sudah, lakukan verifikasi dengan cara login dengan menggunakan user yang baru saja kita buat tadi dan test aksesnya. Caranya:</p>
<pre><span style="color: #ff0000;"><strong>mysql -u &lt;user_db&gt; -p
use &lt;db_signserver&gt;;
show grants for '&lt;user_db&gt;@'&lt;ip&gt;';
exit</strong></span></pre>
<figure id="attachment_2623" aria-describedby="caption-attachment-2623" style="width: 649px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="size-full wp-image-2623" src="https://blog.goreinnamah.com/wp-content/uploads/2018/07/39.png" alt="" width="649" height="317" srcset="https://blog.goreinnamah.com/wp-content/uploads/2018/07/39.png 649w, https://blog.goreinnamah.com/wp-content/uploads/2018/07/39-300x147.png 300w" sizes="auto, (max-width: 649px) 100vw, 649px" /><figcaption id="caption-attachment-2623" class="wp-caption-text">Test user yang baru dibuat untuk signserver</figcaption></figure>
<p style="text-align: justify;">Pada bagian akhir, restart service database tersebut dengan perintah:</p>
<pre><span style="color: #ff0000;"><strong>service mysql restart</strong></span></pre>
<h3 style="text-align: justify;"><strong>Membuat Struktur Direktori</strong></h3>
<p style="text-align: justify;">Sekarang kalian akan membuat struktur direktori dari aplikasi itu sendiri. Saya memutuskan untuk meletakkan aplikasi-aplikasi yang saya butuhkan pada <strong>/opt</strong>. Secara default, Semua dokumentasi Signserver mengasumsikan kalian melakukan instalasi pada home direktori. Namun saya lebih senang untuk menggunakan simbolik link agar lebih mudah.</p>
<ul style="text-align: justify;">
<li><strong>/opt </strong>kalian gunakan untuk meletakkan semua file sehingga kalian bisa dengan mudah menghapusnya dan memulai lagi dari awal.</li>
<li>Download WildFly 10.1.0 dan Signserver CE 4.0.0 dengan wget (link ada di “alat &amp; bahan”) dan letakkan pada <strong>/opt</strong>.</li>
</ul>
<p style="text-align: justify;">Setelah semua file terdownload (dalam bentuk zip), lalu ekstrak dan buat beberapa link sebagai <em>shortcut</em> untuk menuju folder tersebut. Caranya:</p>
<pre><span style="color: #ff0000;"><strong>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</strong></span></pre>
<p style="text-align: justify;">ketik perintah berikut</p>
<pre><span style="color: #ff0000;"><strong>cd /home/user</strong></span>

<span style="color: #ff0000;"><strong>vi .bashrc</strong></span></pre>
<p style="text-align: justify;">dan masukkan beberapa <em>path </em>berikut ini:</p>
<pre><span style="color: #ff0000;"><strong>export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk.x86_64/</strong></span>
<span style="color: #ff0000;"><strong>export PATH=$PATH:$JAVA_HOME/bin</strong></span>

<span style="color: #ff0000;"><strong>export JBOSS_HOME=/opt/jboss</strong></span>
<span style="color: #ff0000;"><strong>export PATH=$PATH:$JBOSS_HOME/bin</strong></span>

<span style="color: #ff0000;"><strong>export APPSRV_HOME=/opt/jboss</strong></span>
<span style="color: #ff0000;"><strong>export PATH=$PATH:$JBOSS_HOME/bin</strong></span>

<span style="color: #ff0000;"><strong>export ANT_OPTS="-Xmx512m -XX:MaxPermSize=128m"</strong></span>

<span style="color: #ff0000;"><strong>export SIGNSERVER_HOME=/opt/signserver</strong></span>
<span style="color: #ff0000;"><strong>export PATH=$SIGNSERVER_HOME/bin:$PATH</strong></span>

<span style="color: #ff0000;"><strong>export SIGNSERVER_NODEID=node1</strong></span></pre>
<figure id="attachment_2628" aria-describedby="caption-attachment-2628" style="width: 475px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="size-full wp-image-2628" src="https://blog.goreinnamah.com/wp-content/uploads/2018/07/19.png" alt="" width="475" height="274" srcset="https://blog.goreinnamah.com/wp-content/uploads/2018/07/19.png 475w, https://blog.goreinnamah.com/wp-content/uploads/2018/07/19-300x173.png 300w" sizes="auto, (max-width: 475px) 100vw, 475px" /><figcaption id="caption-attachment-2628" class="wp-caption-text">Menetapkan path</figcaption></figure>
<h3 style="text-align: justify;"><strong>Menambahkan Database Driver ke dalam Wildfly</strong></h3>
<p style="text-align: justify;">Kita akan melakukan <em>hot-deploying </em>pada penambahan driver database kali ini yaitu dengan memasukkannya secara langsung ke dalam direktori <em>deployment. Driver</em> tersebut akan diambil dan di deploy secara otomatis ketika Wildfly dijalankan.</p>
<p style="text-align: justify;">Untuk mempermudah, kita akan <em>meng-copy</em> file <em>driver</em> tersebut dan mengubah namanya menjadi baru, tanpa ada <em>embel-embel </em>versi drivernya. Caranya:</p>
<pre><span style="color: #ff0000;"><strong>cp mariadb-java-client-2.1.0.jar /opt/jboss/standalone/deployments/mariadb-java-client.jar
ls</strong></span></pre>
<figure id="attachment_2629" aria-describedby="caption-attachment-2629" style="width: 890px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="size-full wp-image-2629" src="https://blog.goreinnamah.com/wp-content/uploads/2018/07/40.png" alt="" width="890" height="77" srcset="https://blog.goreinnamah.com/wp-content/uploads/2018/07/40.png 890w, https://blog.goreinnamah.com/wp-content/uploads/2018/07/40-300x26.png 300w, https://blog.goreinnamah.com/wp-content/uploads/2018/07/40-768x66.png 768w" sizes="auto, (max-width: 890px) 100vw, 890px" /><figcaption id="caption-attachment-2629" class="wp-caption-text">deploy mariadb java client</figcaption></figure>
<ul style="text-align: justify;">
<li><strong>/opt/jboss/</strong> merupakan sebuah link yang saya buat untuk <strong>/opt/wildfly-10.0.0.final</strong></li>
<li><em>Link driver database</em> sudah saya sertakan di awal tutorial.</li>
</ul>
<h3 style="text-align: justify;"><strong>Konfigurasi Wildfly Instance (Standalone)</strong></h3>
<p style="text-align: justify;">Pertama, kita akan melakukan konfigurasi Instance yang nanti akan digunakan oleh Signserver CE 4.0.0. Namanya “<strong>standalone”</strong>, dan hadir secara default dalam Wildfly 10.1.0.Final</p>
<p style="text-align: justify;">Pada direktori <strong>/opt/jboss/bin</strong> terdapat sebuah script yang bernama <strong>standalone.sh</strong> yang merupakan titik utama dari <strong>Wildfly</strong>. Script ini memberi referensi pada sebuah file konfigurasi yang terletak pada folder yang sama bernama <strong>standalone.conf</strong>. Kita tidak akan memodifikasi script startup-nya, tapi kita perlu untuk memodifikasi file konfigurasinya.</p>
<p style="text-align: justify;">Sebagai langkah awal, kita akan mem-backup file konfigurasi defaultnya terlebih dahulu. Caranya:</p>
<pre><span style="color: #ff0000;"><strong>cd /opt/jboss/bin
cp standalone.conf standalone.conf.bak</strong></span></pre>
<p style="text-align: justify;">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.</p>
<ul style="text-align: justify;">
<li>Ada beberapa entri yang dinonaktifkan, namun yang penting di sini adalah <strong>JAVA_HOME</strong> dan <strong>JAVA_OPTS</strong>.</li>
</ul>
<p style="text-align: justify;">Secara <em>default, </em>direktori JAVA_HOME belum di <em>set </em>dan JAVA_OPTS hanya mengizinkan penggunaan memori sebesar 512Mib. Ubah kedua parameter tersebut menjadi seperti berikut:</p>
<p style="text-align: justify;">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.</p>
<ul style="text-align: justify;">
<li>Ada beberapa entri yang dinonaktifkan, namun yang penting di sini adalah <strong>JAVA_HOME</strong> dan <strong>JAVA_OPTS</strong>.</li>
</ul>
<p style="text-align: justify;">Secara <em>default, </em>direktori <strong>JAVA_HOME</strong> belum di <em>set </em>dan <strong>JAVA_OPTS</strong> hanya mengizinkan penggunaan memori sebesar 512Mib. Ubah kedua parameter tersebut menjadi seperti berikut:</p>
<pre><span style="color: #ff0000;"><strong>vi standalone.conf</strong></span></pre>
<pre><span style="color: #ff0000;"><strong>JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk.x86_64/
JAVA_OPTS="-Xms1024m -Xmx1024m -Djava.net.preferIPv4Stack=true"</strong></span></pre>
<figure id="attachment_2632" aria-describedby="caption-attachment-2632" style="width: 917px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="size-full wp-image-2632" src="https://blog.goreinnamah.com/wp-content/uploads/2018/07/41.png" alt="" width="917" height="395" srcset="https://blog.goreinnamah.com/wp-content/uploads/2018/07/41.png 917w, https://blog.goreinnamah.com/wp-content/uploads/2018/07/41-300x129.png 300w, https://blog.goreinnamah.com/wp-content/uploads/2018/07/41-768x331.png 768w" sizes="auto, (max-width: 917px) 100vw, 917px" /><figcaption id="caption-attachment-2632" class="wp-caption-text">Perubahan pada standalone.conf</figcaption></figure>
<h3 style="text-align: justify;">Starting Wildfly</h3>
<p style="text-align: justify;">Beberapa <em>tweak</em> harus kalian lakukan setelah Wildfly berjalan. Karena beberapa perintah di atas ada yang dijalankan sebagai <strong>root</strong>, kalian akan membuat user <strong>io</strong> menjadi owner dari folder wildfly yang sudah kalian extract.</p>
<p style="text-align: justify;">Maka jalankan perintah berikut:</p>
<pre><span style="color: #ff0000;"><strong>chown -R io:io /opt/wildfly-10.1.0.Final</strong></span></pre>
<p style="text-align: justify;">Sekarang dengan user io, kalian akan mengeksekusi file <strong>standalone.sh</strong> yang berada pada folder jboss. Langkah-langkahnya adalah sebagai berikut:</p>
<pre><span style="color: #ff0000;"><strong>cd /opt/jboss/bin
nohup ./standalone.sh -b 0.0.0.0 -bmanagement=0.0.0.0 &amp;</strong></span></pre>
<figure id="attachment_2633" aria-describedby="caption-attachment-2633" style="width: 707px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="size-full wp-image-2633" src="https://blog.goreinnamah.com/wp-content/uploads/2018/07/17.png" alt="" width="707" height="39" srcset="https://blog.goreinnamah.com/wp-content/uploads/2018/07/17.png 707w, https://blog.goreinnamah.com/wp-content/uploads/2018/07/17-300x17.png 300w" sizes="auto, (max-width: 707px) 100vw, 707px" /><figcaption id="caption-attachment-2633" class="wp-caption-text">Menjalankan Service wildfly</figcaption></figure>
<ul style="text-align: justify;">
<li>&amp;” digunakan agar jboss tetap berjalan saat kita keluar dari terminal.</li>
<li>“-b” adalah opsi untuk menentukan jboss.bind.address.</li>
<li>“0.0.0.0” berarti dapat diakses dari IP manapun.</li>
</ul>
<figure id="attachment_2634" aria-describedby="caption-attachment-2634" style="width: 1351px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="size-full wp-image-2634" src="https://blog.goreinnamah.com/wp-content/uploads/2018/07/18.png" alt="" width="1351" height="181" srcset="https://blog.goreinnamah.com/wp-content/uploads/2018/07/18.png 1351w, https://blog.goreinnamah.com/wp-content/uploads/2018/07/18-300x40.png 300w, https://blog.goreinnamah.com/wp-content/uploads/2018/07/18-768x103.png 768w, https://blog.goreinnamah.com/wp-content/uploads/2018/07/18-1024x137.png 1024w" sizes="auto, (max-width: 1351px) 100vw, 1351px" /><figcaption id="caption-attachment-2634" class="wp-caption-text">bukti pada file nohup yang mengatakan kalau wildfly sudah berjalan</figcaption></figure>
<p style="text-align: justify;">dari log diatas dapat dihasilkan beberapa poin, yaitu:</p>
<ul style="text-align: justify;">
<li>JBoss Admin Page dapat diakses dari IP manapun melalui browser.</li>
<li>alamat default URL untuk JBoss Admin tersebut adalah <strong>http://&lt;ip atau domain&gt;:9990/console/App.html</strong></li>
<li>Ketika kita melihat proses ini pada log  → <strong>“started xxx of xxx services”  </strong>, maka JBoss sudah berjalan.</li>
</ul>
<h3 style="text-align: justify;"><strong>Konfigurasi User Admin untuk Wildfly Web</strong></h3>
<p style="text-align: justify;">apabila kita mengakses <strong>console Wildfly via web</strong> pada tahap ini melalui <strong>http://&lt;ip atau domain&gt;:9990 </strong>maka yang tampil adalah seperti berikut:</p>
<figure id="attachment_2318" aria-describedby="caption-attachment-2318" style="width: 1243px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="size-full wp-image-2318" src="https://blog.goreinnamah.com/wp-content/uploads/2018/03/3-2.png" alt="" width="1243" height="988" srcset="https://blog.goreinnamah.com/wp-content/uploads/2018/03/3-2.png 1243w, https://blog.goreinnamah.com/wp-content/uploads/2018/03/3-2-300x238.png 300w, https://blog.goreinnamah.com/wp-content/uploads/2018/03/3-2-768x610.png 768w, https://blog.goreinnamah.com/wp-content/uploads/2018/03/3-2-1024x814.png 1024w" sizes="auto, (max-width: 1243px) 100vw, 1243px" /><figcaption id="caption-attachment-2318" class="wp-caption-text">Jboss console via web tapi masih belum memiliki admin</figcaption></figure>
<p style="text-align: justify;">Hal itu disebabkan oleh belum adanya admin User yang dibuat untuk mengakses console tersebut. Untuk itu kita perlu membuatnya. Caranya:</p>
<pre><span style="color: #ff0000;"><strong>cd /opt/jboss/bin
sh add-user.sh</strong></span></pre>
<p style="text-align: justify;">Maka akan muncul pertanyaan seperti berikut:</p>
<pre><span style="color: #ff0000;"><strong>What type of user do you wish to add?</strong>
<strong> a) Management User (mgmt-users.properties)</strong>
<strong> b) Application User (application-users.properties)</strong>
<strong>(a):</strong>

<strong>Enter the details of the new user to add.</strong>
<strong>Using realm 'ManagementRealm' as discovered from the existing property files.</strong>
<strong>Username : xxxx</strong>
<strong>Password recommendations are listed below. To modify these restrictions edit the add-user.properties configuration file.</strong>
<strong> - The password should be different from the username</strong>
<strong> - The password should not be one of the following restricted values {root, admin, administrator}</strong>
<strong> - The password should contain at least 8 characters, 1 alphabetic character(s), 1 digit(s), 1 non-alphanumeric symbol(s)</strong>
<strong>Password :</strong>
</span><strong><span style="color: #ff0000;">WFLYDM0101: Password should have at least 1 digit.</span></strong><span style="color: #ff0000;">
<strong>Are you sure you want to use the password entered yes/no? yes</strong>
<strong>Re-enter Password :</strong>
<strong>What groups do you want this user to belong to? (Please enter a comma separated list, or leave blank for none)[ ]:</strong>
<strong>About to add user 'jadmin' for realm 'ManagementRealm'</strong>
<strong>Is this correct yes/no? yes</strong>
<strong>Added user 'xxxx' to file '/opt/wildfly-10.1.0.Final/standalone/configuration/mgmt-users.properties'</strong>
<strong>Added user 'xxxx' to file '/opt/wildfly-10.1.0.Final/domain/configuration/mgmt-users.properties'</strong>
<strong>Added user 'xxxx' with groups to file '/opt/wildfly-10.1.0.Final/standalone/configuration/mgmt-groups.properties'</strong>
<strong>Added user 'xxxx' with groups to file '/opt/wildfly-10.1.0.Final/domain/configuration/mgmt-groups.properties'</strong>
<strong>Is this new user going to be used for one AS process to connect to another AS process?</strong>
<strong>e.g. for a slave host controller connecting to the master or for a Remoting connection for server to server EJB calls.</strong>
<strong>yes/no? no</strong></span></pre>
<figure id="attachment_2654" aria-describedby="caption-attachment-2654" style="width: 988px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="size-full wp-image-2654" src="https://blog.goreinnamah.com/wp-content/uploads/2018/07/48.png" alt="" width="988" height="457" srcset="https://blog.goreinnamah.com/wp-content/uploads/2018/07/48.png 988w, https://blog.goreinnamah.com/wp-content/uploads/2018/07/48-300x139.png 300w, https://blog.goreinnamah.com/wp-content/uploads/2018/07/48-768x355.png 768w" sizes="auto, (max-width: 988px) 100vw, 988px" /><figcaption id="caption-attachment-2654" class="wp-caption-text">Menambahkan user untuk wildfly</figcaption></figure>
<ul style="text-align: justify;">
<li>“What type of user do you wish to add?”<b> → </b>isi dengan “a”</li>
<li>“Realm” <b>→</b> enter saja.</li>
<li>“username” <b>→</b> Isi dengan username yang kalian mau.</li>
<li>“Password” <b>→</b> Isi dengan password yang kalian mau.</li>
<li>“Re-Enter Password” <b>→</b> Ulangi kembali dengan password yang sama.</li>
<li>“is this correct” <b>→</b> pilih “yes”</li>
<li>“is this new user going to …..” <b>→</b> pilih “no”</li>
</ul>
<p style="text-align: justify;">Pada saat ini seharusnya kita sudah bisa mengakses interface dari <strong>Wildfly Web Console</strong> dan mengganti beberapa item. Namun pada saat ini kita belum perlu untuk mengganti apapun:</p>
<ul style="text-align: justify;">
<li>Ini adalah user spesifik untuk JBoss yang tidak digunakan dimanapun.</li>
<li>Ini adalah tahapan yang bagus untuk mengambil snapshot vm.</li>
</ul>
<p style="text-align: justify;">Sekarang mari kita coba user tersebut. caranya masuk ke browser dan ketikkan <strong>http://&lt;ip atau domain&gt;:9990/console/App.html. </strong>Maka akan muncul tampilan seperti berikut:</p>
<figure id="attachment_2319" aria-describedby="caption-attachment-2319" style="width: 894px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="size-full wp-image-2319" src="https://blog.goreinnamah.com/wp-content/uploads/2018/03/4-2.png" alt="" width="894" height="284" srcset="https://blog.goreinnamah.com/wp-content/uploads/2018/03/4-2.png 894w, https://blog.goreinnamah.com/wp-content/uploads/2018/03/4-2-300x95.png 300w, https://blog.goreinnamah.com/wp-content/uploads/2018/03/4-2-768x244.png 768w" sizes="auto, (max-width: 894px) 100vw, 894px" /><figcaption id="caption-attachment-2319" class="wp-caption-text">Wildfly web console</figcaption></figure>
<p style="text-align: justify;">Masukkan username dan password sesuai dengan yang baru saja kita input. Apabila benar maka akan muncul tampilan seperti berikut:</p>
<figure id="attachment_2320" aria-describedby="caption-attachment-2320" style="width: 1446px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="size-full wp-image-2320" src="https://blog.goreinnamah.com/wp-content/uploads/2018/03/5-2.png" alt="" width="1446" height="856" srcset="https://blog.goreinnamah.com/wp-content/uploads/2018/03/5-2.png 1446w, https://blog.goreinnamah.com/wp-content/uploads/2018/03/5-2-300x178.png 300w, https://blog.goreinnamah.com/wp-content/uploads/2018/03/5-2-768x455.png 768w, https://blog.goreinnamah.com/wp-content/uploads/2018/03/5-2-1024x606.png 1024w" sizes="auto, (max-width: 1446px) 100vw, 1446px" /><figcaption id="caption-attachment-2320" class="wp-caption-text">Wildfly web login</figcaption></figure>
<h3 style="text-align: justify;"><strong>Menambahkan Data Source</strong></h3>
<p style="text-align: justify;">Sekarang <em>service</em> 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 <strong>Standalone.xml</strong>. Sebelum melakukan perubahan maka ada baiknya kita membackup konfigurasi awal terlebih dahulu. Caranya (masih dengan user jboss):</p>
<pre><span style="color: #ff0000;"><strong>cd /opt/jboss/standalone/configuration
cp standalone.xml standalone.xml.bak</strong></span></pre>
<p style="text-align: justify;">Sekarang kita akan menuju JBoss CLI dan melakukan beberapa perubahan. Caranya:</p>
<pre><span style="color: #ff0000;"><strong>cd /opt/jboss/bin
sh jboss-cli.sh
connect</strong></span></pre>
<p style="text-align: justify;">Lalu jalankan perintah berikut:</p>
<pre class="code"><span style="color: #ff0000;"><strong>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;"
</strong><strong>:reload</strong></span></pre>
<p style="text-align: justify;">Setelah perintah tersebut dieksekusi maka hasil keluarannya adalah “<strong>Success</strong>” (seperti pada gambar di bawah).</p>
<figure id="attachment_2637" aria-describedby="caption-attachment-2637" style="width: 1362px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="size-full wp-image-2637" src="https://blog.goreinnamah.com/wp-content/uploads/2018/07/20.png" alt="" width="1362" height="231" srcset="https://blog.goreinnamah.com/wp-content/uploads/2018/07/20.png 1362w, https://blog.goreinnamah.com/wp-content/uploads/2018/07/20-300x51.png 300w, https://blog.goreinnamah.com/wp-content/uploads/2018/07/20-768x130.png 768w, https://blog.goreinnamah.com/wp-content/uploads/2018/07/20-1024x174.png 1024w" sizes="auto, (max-width: 1362px) 100vw, 1362px" /><figcaption id="caption-attachment-2637" class="wp-caption-text">Sukses menambahkan datasource</figcaption></figure>
<p style="text-align: justify;">Hal yang kita lakukan pada CLI ini mendefinisikan driver mariadb dan koneksi yang ada pada <strong>/opt/jboss/standalone/configuration/standalone.xml</strong>, kemudian me-reload JBoss.</p>
<p style="text-align: justify;">Hasilnya akan terlihat pada <strong>standalone.xml</strong> seperti gambar berikut:</p>
<figure id="attachment_2638" aria-describedby="caption-attachment-2638" style="width: 743px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="size-full wp-image-2638" src="https://blog.goreinnamah.com/wp-content/uploads/2018/07/42.png" alt="" width="743" height="407" srcset="https://blog.goreinnamah.com/wp-content/uploads/2018/07/42.png 743w, https://blog.goreinnamah.com/wp-content/uploads/2018/07/42-300x164.png 300w" sizes="auto, (max-width: 743px) 100vw, 743px" /><figcaption id="caption-attachment-2638" class="wp-caption-text">konfigurasi ini akan kalian temukan di standalone.xml</figcaption></figure>
<p style="text-align: justify;">Sebagai bukti lagi kalau <em>connector</em> tersebut sudah masuk, kita akan melihat pada log yang tertera di file <strong>nohup.out</strong> yang ada pada folder <strong>/opt/jboss/bin</strong>. Namun sebelumnya kita harus me-restart service wildfly yang sedang berjalan. Caranya:</p>
<pre><span style="color: #ff0000;"><strong>cd /opt/jboss/bin
ps -ax | grep jboss
kill &lt;nomor pada ps-ax&gt;
nohup ./standalone.sh -b 0.0.0.0 -bmanagement=0.0.0.0 &amp;
tail -100f nohup.out</strong></span></pre>
<p style="text-align: justify;">Ketika kalian menemukan <strong>org.mariadb.jdbc.driver, </strong>maka datasource tersebut sudah dapat dipastikan masuk.</p>
<h3 style="text-align: justify;"><strong>Datasource Password</strong></h3>
<p style="text-align: justify;">Untuk mengamankan password yang ada pada <strong>SignServerDS </strong>di atas agar tidak <strong>plain text </strong>pada saat ditampilkan di <strong>/opt/jboss/standalone/configuration/standalone.xml </strong>(Guna meningkatkan keamanan sistem), Jalankan perintah berikut:</p>
<ul style="text-align: justify;">
<li>Ganti <strong>PASSWORDLO </strong>dengan password database di atas.</li>
</ul>
<pre><strong><span style="color: #ff0000;">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</span> PASSWORDLO</strong></pre>
<figure id="attachment_2640" aria-describedby="caption-attachment-2640" style="width: 1352px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="size-full wp-image-2640" src="https://blog.goreinnamah.com/wp-content/uploads/2018/07/43.png" alt="" width="1352" height="53" srcset="https://blog.goreinnamah.com/wp-content/uploads/2018/07/43.png 1352w, https://blog.goreinnamah.com/wp-content/uploads/2018/07/43-300x12.png 300w, https://blog.goreinnamah.com/wp-content/uploads/2018/07/43-768x30.png 768w, https://blog.goreinnamah.com/wp-content/uploads/2018/07/43-1024x40.png 1024w" sizes="auto, (max-width: 1352px) 100vw, 1352px" /><figcaption id="caption-attachment-2640" class="wp-caption-text">Mendapatkan Encoded Password</figcaption></figure>
<ul style="text-align: justify;">
<li>copy dan paste <strong>encoded password </strong>di atas ke file <strong>standalone.xml:</strong></li>
</ul>
<pre><span style="color: #ff0000;"><strong>vi /opt/jboss/standalone/configuration/standalone.xml</strong></span></pre>
<ul style="text-align: justify;">
<li>Paste segmen berikut pada segmen <strong>security-domains </strong>(dengan mengganti <strong>PASSWORDLO_ENC </strong>menjadi <strong>encoded password </strong>yang kita dapatkan dari perintah di atas dan <strong>USERLO </strong>dengan user untuk terkoneksi ke database)</li>
</ul>
<pre><span style="color: #ff0000;"><strong>&lt;security-domain name="SignServerDSEncryptedPassword"&gt;</strong>
<strong> &lt;authentication&gt;</strong>
<strong> &lt;login-module code="SecureIdentity" flag="required"&gt;</strong>
<strong> &lt;module-option name="username" value="<span style="color: #000000;">USERLO</span>"/&gt;</strong>
<strong> &lt;module-option name="password" value="<span style="color: #000000;">PASSWORDLO_ENC</span>"/&gt;</strong>
<strong> &lt;/login-module&gt;</strong>
<strong> &lt;/authentication&gt;</strong>
<strong>&lt;/security-domain&gt;</strong></span></pre>
<figure id="attachment_2641" aria-describedby="caption-attachment-2641" style="width: 796px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="size-full wp-image-2641" src="https://blog.goreinnamah.com/wp-content/uploads/2018/07/44.png" alt="" width="796" height="187" srcset="https://blog.goreinnamah.com/wp-content/uploads/2018/07/44.png 796w, https://blog.goreinnamah.com/wp-content/uploads/2018/07/44-300x70.png 300w, https://blog.goreinnamah.com/wp-content/uploads/2018/07/44-768x180.png 768w" sizes="auto, (max-width: 796px) 100vw, 796px" /><figcaption id="caption-attachment-2641" class="wp-caption-text">Penambahan Security Domain</figcaption></figure>
<ul style="text-align: justify;">
<li>Lihat bagian <strong>SignServerDs datasource </strong>dan ganti segmen <strong>security </strong>(dimana <strong>PASSWORDLO </strong>adalah password lama dalam bentuk <strong>plain text</strong>):</li>
</ul>
<pre><span style="color: #ff0000;"><strong>&lt;security&gt;</strong>
<strong> &lt;user-name&gt;<span style="color: #000000;">USERLO</span>&lt;/user-name&gt;</strong>
<strong> &lt;password&gt;<span style="color: #000000;">PASSWORDLO</span>&lt;/password&gt;</strong>
<strong>&lt;/security&gt;</strong></span></pre>
<ul style="text-align: justify;">
<li>Dengan bentuk berikut:</li>
</ul>
<pre><span style="color: #ff0000;"><strong>&lt;security&gt;</strong>
<strong> &lt;security-domain&gt;<span style="color: #000000;">SignServerDsEncryptedPassword</span>&lt;/security-domain&gt;</strong>
<strong>&lt;/security&gt;</strong></span></pre>
<p style="text-align: justify;">Restart kembali JBOSS</p>
<pre><span style="color: #ff0000;"><strong>cd /opt/jboss/bin 
ps -ax | grep jboss kill &lt;nomor pada ps-ax&gt; 
nohup ./standalone.sh -b 0.0.0.0 -bmanagement=0.0.0.0 &amp; 
tail -100f nohup.out</strong></span></pre>
<h3 style="text-align: justify;">Konfigurasi Wildfly SSL</h3>
<p style="text-align: justify;">Konfigur <em>interfaces </em>dengan menggunakan <em>bind addreess </em>yang tepat (i.e. 0.0.0.0 or 127.0.0.1)</p>
<pre><span style="color: #ff0000;"><strong>cd /opt/jboss/bin </strong></span>
<span style="color: #ff0000;"><strong>sh jboss-cli.sh 
connect</strong></span></pre>
<pre class="code"><span style="color: #ff0000;"><strong>/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")
</strong></span></pre>
<pre class="code"><span style="color: #ff0000;"><strong>/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</strong></span></pre>
<div style="text-align: justify;">
<figure id="attachment_2643" aria-describedby="caption-attachment-2643" style="width: 729px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="size-full wp-image-2643" src="https://blog.goreinnamah.com/wp-content/uploads/2018/07/24.png" alt="" width="729" height="165" srcset="https://blog.goreinnamah.com/wp-content/uploads/2018/07/24.png 729w, https://blog.goreinnamah.com/wp-content/uploads/2018/07/24-300x68.png 300w" sizes="auto, (max-width: 729px) 100vw, 729px" /><figcaption id="caption-attachment-2643" class="wp-caption-text">konfigur interface</figcaption></figure>
</div>
<p style="text-align: justify;"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-2648" src="https://blog.goreinnamah.com/wp-content/uploads/2018/07/28.png" alt="" width="1338" height="325" srcset="https://blog.goreinnamah.com/wp-content/uploads/2018/07/28.png 1338w, https://blog.goreinnamah.com/wp-content/uploads/2018/07/28-300x73.png 300w, https://blog.goreinnamah.com/wp-content/uploads/2018/07/28-768x187.png 768w, https://blog.goreinnamah.com/wp-content/uploads/2018/07/28-1024x249.png 1024w" sizes="auto, (max-width: 1338px) 100vw, 1338px" /></p>
<div style="text-align: justify;">
<h3><strong>Menghapus TLS dan Konfigurasi HTTP yang Sudah Ada</strong></h3>
<p>Jalankan perintah berikut pada <strong>JBOSS CLI </strong>untuk menhapus konfigurasi TLS dan HTTP yang sudah ada (hanya untuk keamanan).</p>
<pre class="code"><span style="color: #ff0000;"><strong>/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</strong></span></pre>
</div>
<div style="text-align: justify;"></div>
<div style="text-align: justify;">
<figure id="attachment_2647" aria-describedby="caption-attachment-2647" style="width: 914px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="size-full wp-image-2647" src="https://blog.goreinnamah.com/wp-content/uploads/2018/07/27.png" alt="" width="914" height="625" srcset="https://blog.goreinnamah.com/wp-content/uploads/2018/07/27.png 914w, https://blog.goreinnamah.com/wp-content/uploads/2018/07/27-300x205.png 300w, https://blog.goreinnamah.com/wp-content/uploads/2018/07/27-768x525.png 768w" sizes="auto, (max-width: 914px) 100vw, 914px" /><figcaption id="caption-attachment-2647" class="wp-caption-text">remove tls and http conf</figcaption></figure>
</div>
<div style="text-align: justify;">Tunggu proses <em>reload </em>hingga benar-benar selesai dengan memeriksa <em>log server </em>sebelum melanjutkan ke proses selanjutnya.</div>
<div style="text-align: justify;"></div>
<div class="source" style="text-align: justify;">Kemudian, amankan CLI dengan menghilangkan <em>http-remoting-connector </em>dari penggunaan <em>http port </em>dan sebagai gantinya gunakan port 4447</div>
<pre class="code"><span style="color: #ff0000;"><strong>/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</strong></span></pre>
<div class="subsubsection" style="text-align: justify;">
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-2646" src="https://blog.goreinnamah.com/wp-content/uploads/2018/07/26.png" alt="" width="1350" height="246" srcset="https://blog.goreinnamah.com/wp-content/uploads/2018/07/26.png 1350w, https://blog.goreinnamah.com/wp-content/uploads/2018/07/26-300x55.png 300w, https://blog.goreinnamah.com/wp-content/uploads/2018/07/26-768x140.png 768w, https://blog.goreinnamah.com/wp-content/uploads/2018/07/26-1024x187.png 1024w" sizes="auto, (max-width: 1350px) 100vw, 1350px" /></p>
<p style="text-align: justify;">Tunggu sampai proses reload selesai dengan cara mengecek log yang ada pada <strong>nohup.out, </strong>baru kemudian lanjutkan ke proses berikutnya</p>
<p style="text-align: justify;">Atur <em>port </em>privat yang membutuhkan sertifikat klien. Gunakan nilai yang tepat untuk <strong>key-alias (hostname), password (keystore password), ca-certificate-password (truststore password) </strong>dan protocol yang mendukung lainnya.</p>
<pre class="prettyprint"><span style="color: #ff0000;"><strong><span class="str">/socket-binding-group=standard-sockets/</span><span class="pln">socket</span><span class="pun">-</span><span class="pln">binding</span><span class="pun">=</span><span class="pln">httpspriv</span><span class="pun">:</span><span class="pln">add</span><span class="pun">(</span><span class="pln">port</span><span class="pun">=</span><span class="str">"8443"</span><span class="pun">,</span><span class="kwd">interface</span><span class="pun">=</span><span class="str">"httpspriv"</span><span class="pun">)</span>
<span class="pun">/</span><span class="pln">core</span><span class="pun">-</span><span class="pln">service</span><span class="pun">=</span><span class="pln">management</span><span class="pun">/</span><span class="pln">security</span><span class="pun">-</span><span class="pln">realm</span><span class="pun">=</span><span class="typ">SSLRealm</span><span class="pun">:</span><span class="pln">add</span><span class="pun">()</span>
<span class="pun">/</span><span class="pln">core</span><span class="pun">-</span><span class="pln">service</span><span class="pun">=</span><span class="pln">management</span><span class="pun">/</span><span class="pln">security</span><span class="pun">-</span><span class="pln">realm</span><span class="pun">=</span><span class="typ">SSLRealm</span><span class="pun">/</span><span class="pln">server</span><span class="pun">-</span><span class="pln">identity</span><span class="pun">=</span><span class="pln">ssl</span><span class="pun">:</span><span class="pln">add</span><span class="pun">(</span><span class="pln">keystore</span><span class="pun">-</span><span class="pln">path</span><span class="pun">=</span><span class="str">"keystore/keystore.jks"</span><span class="pun">,</span><span class="pln"> keystore</span><span class="pun">-</span><span class="pln">relative</span><span class="pun">-</span><span class="pln">to</span><span class="pun">=</span><span class="str">"jboss.server.config.dir"</span><span class="pun">,</span><span class="pln"> keystore</span><span class="pun">-</span><span class="pln">password</span><span class="pun">=</span><span class="str">"<span style="color: #000000;">serverpwd</span>"</span><span class="pun">,</span> <span class="kwd">alias</span><span class="pun">=</span><span class="str">"<span style="color: #000000;">localhost</span>"</span><span class="pun">)</span>
<span class="pun">/</span><span class="pln">core</span><span class="pun">-</span><span class="pln">service</span><span class="pun">=</span><span class="pln">management</span><span class="pun">/</span><span class="pln">security</span><span class="pun">-</span><span class="pln">realm</span><span class="pun">=</span><span class="typ">SSLRealm</span><span class="pun">/</span><span class="pln">authentication</span><span class="pun">=</span><span class="pln">truststore</span><span class="pun">:</span><span class="pln">add</span><span class="pun">(</span><span class="pln">keystore</span><span class="pun">-</span><span class="pln">path</span><span class="pun">=</span><span class="str">"keystore/truststore.jks"</span><span class="pun">,</span><span class="pln"> keystore</span><span class="pun">-</span><span class="pln">relative</span><span class="pun">-</span><span class="pln">to</span><span class="pun">=</span><span class="str">"jboss.server.config.dir"</span><span class="pun">,</span><span class="pln"> keystore</span><span class="pun">-</span><span class="pln">password</span><span class="pun">=</span><span class="str">"<span style="color: #000000;">changeit</span>"</span><span class="pun">)</span>
<span class="pun">/</span><span class="pln">subsystem</span><span class="pun">=</span><span class="pln">undertow</span><span class="pun">/</span><span class="pln">server</span><span class="pun">=</span><span class="kwd">default</span><span class="pun">-</span><span class="pln">server</span><span class="pun">/</span><span class="pln">https</span><span class="pun">-</span><span class="pln">listener</span><span class="pun">=</span><span class="pln">httpspriv</span><span class="pun">:</span><span class="pln">add</span><span class="pun">(</span><span class="pln">socket</span><span class="pun">-</span><span class="pln">binding</span><span class="pun">=</span><span class="str">"httpspriv"</span><span class="pun">,</span><span class="pln"> security</span><span class="pun">-</span><span class="pln">realm</span><span class="pun">=</span><span class="str">"SSLRealm"</span><span class="pun">,</span><span class="pln"> verify</span><span class="pun">-</span><span class="pln">client</span><span class="pun">=</span><span class="pln">REQUIRED</span><span class="pun">)</span></strong></span></pre>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-2649" src="https://blog.goreinnamah.com/wp-content/uploads/2018/07/25.png" alt="" width="1209" height="37" srcset="https://blog.goreinnamah.com/wp-content/uploads/2018/07/25.png 1209w, https://blog.goreinnamah.com/wp-content/uploads/2018/07/25-300x9.png 300w, https://blog.goreinnamah.com/wp-content/uploads/2018/07/25-768x24.png 768w, https://blog.goreinnamah.com/wp-content/uploads/2018/07/25-1024x31.png 1024w" sizes="auto, (max-width: 1209px) 100vw, 1209px" /></p>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-2650" src="https://blog.goreinnamah.com/wp-content/uploads/2018/07/30.png" alt="" width="1352" height="337" srcset="https://blog.goreinnamah.com/wp-content/uploads/2018/07/30.png 1352w, https://blog.goreinnamah.com/wp-content/uploads/2018/07/30-300x75.png 300w, https://blog.goreinnamah.com/wp-content/uploads/2018/07/30-768x191.png 768w, https://blog.goreinnamah.com/wp-content/uploads/2018/07/30-1024x255.png 1024w" sizes="auto, (max-width: 1352px) 100vw, 1352px" /></p>
<p>Atur SSL <em>port </em>untuk publik yang tidak membutuhkan <em>client certificate</em></p>
<pre class="prettyprint"><span style="color: #ff0000;"><strong><span class="str">/socket-binding-group=standard-sockets/</span><span class="pln">socket</span><span class="pun">-</span><span class="pln">binding</span><span class="pun">=</span><span class="pln">httpspub</span><span class="pun">:</span><span class="pln">add</span><span class="pun">(</span><span class="pln">port</span><span class="pun">=</span><span class="str">"8442"</span><span class="pun">,</span><span class="kwd">interface</span><span class="pun">=</span><span class="str">"httpspub"</span><span class="pun">)</span>
<span class="pun">/</span><span class="pln">subsystem</span><span class="pun">=</span><span class="pln">undertow</span><span class="pun">/</span><span class="pln">server</span><span class="pun">=</span><span class="kwd">default</span><span class="pun">-</span><span class="pln">server</span><span class="pun">/</span><span class="pln">https</span><span class="pun">-</span><span class="pln">listener</span><span class="pun">=</span><span class="pln">httpspub</span><span class="pun">:</span><span class="pln">add</span><span class="pun">(</span><span class="pln">socket</span><span class="pun">-</span><span class="pln">binding</span><span class="pun">=</span><span class="str">"httpspub"</span><span class="pun">,</span><span class="pln"> security</span><span class="pun">-</span><span class="pln">realm</span><span class="pun">=</span><span class="str">"SSLRealm"</span><span class="pun">)
:reload</span></strong></span></pre>
<p style="text-align: justify;">Perbaiki masalah pada <em>web service </em>dengan cara:</p>
</div>
<pre class="prettyprint"><span style="color: #ff0000;"><strong><span class="str">/subsystem=webservices:write-attribute(name=wsdl-host, value=jbossws.undefined.host)
/</span><span class="pln">subsystem</span><span class="pun">=</span><span class="pln">webservices</span><span class="pun">:</span><span class="pln">write</span><span class="pun">-</span><span class="pln">attribute</span><span class="pun">(</span><span class="pln">name</span><span class="pun">=</span><span class="pln">modify</span><span class="pun">-</span><span class="pln">wsdl</span><span class="pun">-</span><span class="pln">address</span><span class="pun">,</span><span class="pln"> value</span><span class="pun">=</span><span class="kwd">true</span><span class="pun">)</span></strong></span></pre>
<figure id="attachment_2651" aria-describedby="caption-attachment-2651" style="width: 1062px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="size-full wp-image-2651" src="https://blog.goreinnamah.com/wp-content/uploads/2018/07/31.png" alt="" width="1062" height="145" srcset="https://blog.goreinnamah.com/wp-content/uploads/2018/07/31.png 1062w, https://blog.goreinnamah.com/wp-content/uploads/2018/07/31-300x41.png 300w, https://blog.goreinnamah.com/wp-content/uploads/2018/07/31-768x105.png 768w, https://blog.goreinnamah.com/wp-content/uploads/2018/07/31-1024x140.png 1024w" sizes="auto, (max-width: 1062px) 100vw, 1062px" /><figcaption id="caption-attachment-2651" class="wp-caption-text">Fix web Service</figcaption></figure>
<h3 style="text-align: justify;">Konfigur Deployment</h3>
<p style="text-align: justify;">Sekarang waktunya untuk konfigurasi file pada signserver. Masuk ke dalam folder signserver kemudian <em>copy file </em>yang dibutuhkan. Caranya:</p>
<pre class="prettyprint"><span style="color: #ff0000;"><strong><span class="pln">cd /opt/signserver
cp conf</span><span class="pun">/</span><span class="pln">signserver_deploy</span><span class="pun">.</span><span class="pln">properties</span><span class="pun">.</span><span class="pln">sample conf</span><span class="pun">/</span><span class="pln">signserver_deploy</span><span class="pun">.</span><span class="pln">properties
vi conf/signserver_deploy.properties</span></strong></span></pre>
<p style="text-align: justify;">Ubah isi file tersebut menjadi seperti berikut:</p>
<pre><strong>appserver.home=<span style="color: #ff0000;">/opt/jboss</span>
appserver.type=<span style="color: #ff0000;">jboss</span>
datasource.jndi-name=<span style="color: #ff0000;">SignServerDS</span>
database.name=<span style="color: #ff0000;">mysql</span>
database.url=<span style="color: #ff0000;">jdbc:mysql://127.0.0.1:3306/&lt;nama_db&gt;?characterEncoding=UTF-8</span>
database.driver=<span style="color: #ff0000;">org.mariadb.jdbc.Driver</span>
database.username=<span style="color: #ff0000;">&lt;user_db&gt;</span>
database.password=<span style="color: #ff0000;">&lt;password_db&gt;</span></strong></pre>
<h3 style="text-align: justify;">Deploy Signserver</h3>
<p style="text-align: justify;">Untuk melakukan deploy, masuk ke dalam direktori <strong>$SIGNSERVER_HOME</strong>, lalu jalankan perintah berikut:</p>
<pre><span style="color: #ff0000;"><strong>ant deploy</strong></span></pre>
<p style="text-align: justify;">Pastikan kalau hasil yang muncul adalah &#8220;<strong>build successful&#8221;. </strong>Setelah itu, kalian bisa memeriksa status dari signserver dengan mengetikkan perintah:</p>
<pre class="prettyprint"><span style="color: #ff0000;"><strong><span class="pln">bin</span><span class="pun">/</span><span class="pln">signserver getstatus brief all</span></strong></span></pre>
<figure id="attachment_2660" aria-describedby="caption-attachment-2660" style="width: 501px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="size-full wp-image-2660" src="https://blog.goreinnamah.com/wp-content/uploads/2018/07/49.png" alt="" width="501" height="39" srcset="https://blog.goreinnamah.com/wp-content/uploads/2018/07/49.png 501w, https://blog.goreinnamah.com/wp-content/uploads/2018/07/49-300x23.png 300w" sizes="auto, (max-width: 501px) 100vw, 501px" /><figcaption id="caption-attachment-2660" class="wp-caption-text">versi signserver akan muncul</figcaption></figure>
<p style="text-align: justify;">dan untuk mengakses halaman webnya, ketikkan alamatnya pada <em>browser:</em></p>
<pre><span style="color: #ff0000;"><strong>http://localhost:8080/signserver</strong></span></pre>
<figure id="attachment_2661" aria-describedby="caption-attachment-2661" style="width: 1345px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="size-full wp-image-2661" src="https://blog.goreinnamah.com/wp-content/uploads/2018/07/50.png" alt="" width="1345" height="629" srcset="https://blog.goreinnamah.com/wp-content/uploads/2018/07/50.png 1345w, https://blog.goreinnamah.com/wp-content/uploads/2018/07/50-300x140.png 300w, https://blog.goreinnamah.com/wp-content/uploads/2018/07/50-768x359.png 768w, https://blog.goreinnamah.com/wp-content/uploads/2018/07/50-1024x479.png 1024w" sizes="auto, (max-width: 1345px) 100vw, 1345px" /><figcaption id="caption-attachment-2661" class="wp-caption-text">signserver berhasil terinstal</figcaption></figure>
<p style="text-align: justify;">Itu tadi cara melakukan instalasi Signserver CE 4.0.0 pada CentOS 6.10. Semoga informasi tersebut bisa membantu kalian yang ingin mencobanya.</p>
<p style="text-align: justify;">Sampai jumpa di Tutorial berikutnya <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p><p>The post <a href="https://blog.goreinnamah.com/blog/2018/07/11/instalasi-signserver-4-0-0/">Instalasi Signserver 4.0.0 pada WildFly 10.1.0 di CentOS 6.10</a> first appeared on <a href="https://blog.goreinnamah.com">GoBlog</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://blog.goreinnamah.com/blog/2018/07/11/instalasi-signserver-4-0-0/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
	</channel>
</rss>

<!--
Performance optimized by W3 Total Cache. Learn more: https://www.boldgrid.com/w3-total-cache/?utm_source=w3tc&utm_medium=footer_comment&utm_campaign=free_plugin

Object Caching 0/195 objects using Memcached
Page Caching using Disk: Enhanced 
Database Caching using Memcached (Request-wide modification query)

Served from: blog.goreinnamah.com @ 2026-10-07 10:54:21 by W3 Total Cache
-->