Install OpenKM di CentOS 6

OpenKM adalah Document Management System yang menurut saya paling bagus
Berikut adalah cara menginstall OpenKM di Sistem CentOS yang saya miliki.

Sistem yang saya gunakan:
– CentOS 6.5 64bit
– OpenKM 6.3 Community Version
– Oracle Java JDK 1.7

Konfigurasi yang digunakan
– LDAP server dengan IP Address ldap://ip-address-ldap:389
– LDAP server dengan login cn=adminldap,dc=domain,dc=id

Install CentOS 6 dengan Perfect Server

Cara Instalasi bisa dilihat di
Install Centos 6 Perfect Server part 1
Install Centos 6 Perfect Server part 2

Install dengan beberapa parameter
nama domain server OpenKM ini dokumen.agungsep.co.id

Install Oracle Java JDK 1.7

Install Oracle Java JDK di CentOS 6.5

Install JDK 1.7. Tidak perlu install JDK 1.6

Install OpenKM

Download OpenKM 6.3 Community Version dari link di bawah ini
http://www.openkm.com/en/download-english.html
Download yang Openkm-6.3.0-tomcat-bundle.zip
Lalu upload ke server anda di folder /opt

unzip file OpenKM nya

unzip /opt/openkm-6.3.0-community-tomcat-bundle.zip

Eksekusi script di bawah ini untuk memulai servis Tomcat

/opt/tomcat/bin/catalina.sh start

Aplikasi OpenKM sudah running. Buka dengan browser ke alamat di bawah ini

http://<ip-address-server>:8080

Login dengan parameter
user: okmAdmin
pass: admin

Install Aplikasi Third-Party untuk OpenKM

Install Semua Tools yang dibutuhkan

Sebelumnya, kita harus menginstall Repository RPMForge.
Cara Instalasi Repository RPM Forge bisa dilihat diInstall Repository RPMForge di CentOS 6

Install Tools berikut dari RPM Forge

yum install swftools libreoffice-headless libreoffice-sdk ImageMagick

Konfigurasi di Administration Page OpenKM

Buka OpenKM dengan login okmAdmin, buka menu Administration - Configuration
Edit Konfigurasi settingan di bawah ini:

system.imagemagick.convert = /usr/bin/convert 
system.openoffice.path     = /usr/lib64/libreoffice
system.swftools.pdf2swf    = /usr/bin/pdf2swf -f -T 9 -t -s storeallcharacters ${fileIn} -o ${fileOut}

Integrasi dengan OpenLDAP

Struktur OpenLDAP yang saya miliki adalah sebagai berikut

dc=id
   dc=domain
      ou=Group
         cn=ROLE_USER,  objectClass=posixGroup, memberUid = agungsep, memberUid = bruce.wayne
         cn=ROLE_ADMIN, objectClass=posixGroup, memberUid = agungsep
      ou=People
         uid = agungsep, objectClass=inetOrgperson, cn = Agung Sep
         uid = bruce.wayne, objectClass=inetOrgperson, cn = Bruce Wayne

Ada dua bagian yang kita harus konfigurasi:

Konfigurasi OpenKM

Buka OpenKM dengan login okmAdmin, buka menu Administration - Configuration
Edit Konfigurasi settingan di bawah ini:

principal.adapter                          = com.openkm.principal.LdapPrincipalAdapter
principal.ldap.mail.attribute              = mail
principal.ldap.mail.search.base            = ou=People,dc=domain,dc=id
principal.ldap.mail.search.filter          = (&(objectClass=inetOrgPerson)(uid={0}))
principal.ldap.referral                    = follow
principal.ldap.role.attribute              = cn
principal.ldap.role.search.base            = ou=Group,dc=domain,dc=id
principal.ldap.role.search.filter          = (objectClass=posixGroup)
principal.ldap.roles.by.user.attribute     = cn
principal.ldap.roles.by.user.search.base   = ou=Group,dc=domain,dc=id
principal.ldap.roles.by.user.search.filter = (memberUid={0})
principal.ldap.security.credentials        = pass-ldap-service
principal.ldap.security.principal          = cn=adminldap,dc=domain,dc=id
principal.ldap.server                      = ldap://<ip-server-ldap>:389
principal.ldap.user.attribute              = uid
principal.ldap.user.search.base            = ou=People,dc=domain,dc=id
principal.ldap.user.search.filter          = (objectClass=inetOrgPerson)
principal.ldap.username.attribute          = cn
principal.ldap.username.search.base        = ou=People,dc=domain,dc=id
principal.ldap.users.by.role.search.filter = (&(objectClass=posixGroup)(cn={0}))
principal.ldap.users.from.roles            = false
system.login.lowercase                     = false

Jika telah mengedit principal.adapter, kita diharuskan merestart Tomcat, konfigurasi lain bisa diubah on-the-fly
Restart Tomcat.

/opt/tomcat/bin/catalina.sh stop
/opt/tomcat/bin/catalina.sh start

Konfigurasi Tomcat

Ubah /opt/tomcat/OpenKM.xml dari

  <!-- Security configuration -->
  <security:authentication-manager alias="authenticationManager">
    <security:authentication-provider>
      <security:password-encoder hash="md5"/>
      <security:jdbc-user-service 
        data-source-ref="dataSource"
        users-by-username-query="select usr_id, usr_password, 1 from OKM_USER where usr_id=? and usr_active='T'"
        authorities-by-username-query="select ur_user, ur_role from OKM_USER_ROLE where ur_user=?"/>
    </security:authentication-provider>
  </security:authentication-manager>

menjadi seperti ini

<security:ldap-server id="ldapServer"
    url="ldap://<ip-server-ldap>:389"
    manager-dn="cn=adminldap,dc=domain,dc=id"
    manager-password="pass-ldap-service"/>
 
  <!-- Security configuration -->
  <security:authentication-manager alias="authenticationManager">
    <security:ldap-authentication-provider
      server-ref="ldapServer"
      user-search-base="ou=People,dc=domain,dc=id"
      user-search-filter="(uid={0})"
      group-search-base="ou=Group,dc=domain,dc=id"
      group-search-filter="(memberUid={0})"
      group-role-attribute="cn"
      role-prefix="none">
    </security:ldap-authentication-provider>
  </security:authentication-manager>

Voila. Server OpenKM sudah terintegrasi dengan OpenKM
user agungsep memiliki role sebagai Admin, sedangkan user Bruce Wayne hanya memiliki role sebagai User

OpenKM in advanced

Mengaktifkan SSL dan memaksa user untuk menggunakan https://

Defaultnya, Apache Tomcat itu menggunakan port 8080 sebagai port web nya. SSL nya pun defaultnya tidak diaktifkan. Apache Tomcat menggunakan port 8443 sebagai port SSL web nya bukan menggunakan port 443 seperti biasanya.
Kita ingin mengaktifkan SSL nya agar dapat menggunakan https

Mengaktifkan SSL di Apache Tomcat

Untuk mengaktifkan SSL, kita harus membuat sertifikat terlebih dahulu. Langkah pertama, kita harus masuk ke directory Java kita terlebih dahulu.

cd /usr/java/jdk1.7.0_60
.bin/keytool -genkey -alias tomcat -keyalg RSA

Perintah di atas digunakan untuk membuat self-signed certificate. Jangan lupa isi password keystore nya sesuai dengan kehendak hati.
Sertifikat secara default ditaruh di /root/.keystore

Mengubah file server.xml dan web.xml

Buka file /opt/tomcat/conf/server.xml
Edit beberapa baris, dan uncomment beberapa baris sehingga menjadi seperti di bawah ini

    <Connector port="80" enableLookups="false"
               redirectPort="443" />

    <Connector port="443" protocol="HTTP/1.1" SSLEnabled="true"
               maxThreads="150" scheme="https" secure="true"
			   keystoreFile="/root/.keystore" keystorePass="pass-keystore-tadi"
               clientAuth="false" sslProtocol="TLS" />

Buka file /opt/tomcat/conf/web.xml
Tambahkan SEBELUM baris

</web-app>

dengan konten di bawah ini

<security-constraint>
<web-resource-collection>
<web-resource-name>Protected Context</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<!-- auth-constraint goes here if you requre authentication -->
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>

Restart Tomcat

/opt/tomcat/bin/catalina.sh stop 
/opt/tomcat/bin/catalina.sh start

Voila. Silahkan akses ke http://ip-address.OpenKM. Seharusnya langsung diredirect ke https://ip-address.OpenKM.

Membuat OpenKM Service autostart pada saat server start-up

Saat ini, jika ingin mematikan atau menyalakan service OpenKM, kita harus melakukan perintah di bawah ini

/opt/tomcat/bin/catalina.sh stop 
/opt/tomcat/bin/catalina.sh start

Namun, kita sih ingin membuat service OpenKM tersebut dapat aktif pada saat server Linux dinyalakan.
Buat symlinks catalina.sh ke folder /etc/init.d

ln -s /opt/tomcat/bin/catalina.sh /etc/init.d/catalina

Buat supaya catalina.sh disupport oleh chkconfig dengan menambahkan baris di /opt/tomcat/bin/catalina.sh

#!/bin/sh
# chkconfig: 345 99 01 

Eksekusi perintah di bawah agar /etc/init.d/catalina menjadi masuk ke dalam daftar chkconfig

chkconfig --add catalina
chkconfig catalina on
chkconfig --list | grep catalina

Terlihat bahwa service catalina sudah on

catalina        0:off   1:off   2:on    3:on    4:on    5:on    6:off

sekarang mematikan dan menghidupkan service openKM cukup dengan perintah

service catalina stop
service catalina start

Sekarang service OpenKM pun sudah aktif pada saat server direstart
WARNING: Cara yang saya lakukan mungkin kurang “elegan”. Bila ada cara lain yang lebih secure. Berikan komentar di bawah yak..

Source:
tomcat[dot]apache[dot]org/tomcat-7.0-doc/ssl-howto.html
tkurek[dot]blogspot[dot]com/2013/07/tomcat-7-http-to-https-redirect.html

Tinggalkan komentar

Situs ini menggunakan Akismet untuk mengurangi spam. Pelajari bagaimana data komentar Anda diproses.