Selasa, 07 April 2015

OpenKM(DMS) di CentOS 6

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

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

Install Oracle Java JDK 1.7

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
1
unzip /opt/openkm-6.3.0-community-tomcat-bundle.zip
Eksekusi script di bawah ini untuk memulai servis Tomcat
1
/opt/tomcat/bin/catalina.sh start
Aplikasi OpenKM sudah running. Buka dengan browser ke alamat di bawah ini
1
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
1
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:
1
2
3
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
1
2
3
4
5
6
7
8
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:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
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.
1
2
/opt/tomcat/bin/catalina.sh stop
/opt/tomcat/bin/catalina.sh start

Konfigurasi Tomcat

Ubah /opt/tomcat/OpenKM.xml dari
1
2
3
4
5
6
7
8
9
10
<!-- 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
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<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.
1
2
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
1
2
3
4
5
6
7
<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
1
</web-app>
dengan konten di bawah ini
1
2
3
4
5
6
7
8
9
10
<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
1
2
/opt/tomcat/bin/catalina.sh stop
/opt/tomcat/bin/catalina.sh start
Voila. Silahkan akses ke http://ip-address.OpenKM. Seharusnya langsung diredirect kehttps://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
1
2
/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
1
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
1
2
#!/bin/sh
# chkconfig: 345 99 01
Eksekusi perintah di bawah agar /etc/init.d/catalina menjadi masuk ke dalam daftarchkconfig
1
2
3
chkconfig --add catalina
chkconfig catalina on
chkconfig --list | grep catalina
Terlihat bahwa service catalina sudah on
1
catalina        0:off   1:off   2:on    3:on    4:on    5:on    6:off
sekarang mematikan dan menghidupkan service openKM cukup dengan perintah
1
2
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

Tidak ada komentar:

Posting Komentar