Pada kegiatan kali ini didasarkan pada permintaan klien kami yang meminta aplikasi Grails di deploy pada tomcat dengan menggunakan protocol https. Setelah googling beberapa saat akhirnya saya bisa meramu puzzle untuk menjadi sebuah tulisan yang akan saya sajikan sebentar lagi. Untuk ngoprek kali ini kita akan menggunakannya untuk aplikasi yang ditulis dengan Grails dan anda diasumsikan sudah install JAVA termasuk setting JAVA_HOME di sistem anda. Tanpa banyak berbicara step-step yang diperlukan adalah sebagai berikut:
1. Membuat Keystore Menggunakan JAVA
Ketikkan perintah berikut di command line (DOS)
keytool -genkey -alias tomcat -keyalg RSA
lalu anda akan diberikan tampilan untuk diisi seperti berikut (disini saya menggunakan kata ‘password’ sebagai password).
hape@hape:~$ keytool -genkey -alias tomcat -keyalg RSA Enter keystore password: Re-enter new password: What is your first and last name? [Unknown]: hape What is the name of your organizational unit? [Unknown]: dev What is the name of your organization? [Unknown]: herpur.web.id What is the name of your City or Locality? [Unknown]: city What is the name of your State or Province? [Unknown]: prov What is the two-letter country code for this unit? [Unknown]: id Is CN=hape, OU=dev, O=herpur.web.id, L=city, ST=prov, C=id correct? [no]: yes Enter key password for(RETURN if same as keystore password): Re-enter new password: hape@hape:~$
Setelah selesai maka anda akan mendapatkan file .keystore di folder:
Linux : /home/[username]
Windows: C:\Documents and Settings\[username].
2. Konfigurasikan Tomcat Untuk Menggunakan file .keystore
Buka file server.xml yang terletak di %CATALINA_HOME%/conf/ kemudian uncomment pada bagian berikut
tambahkan isinya sehingga menjadi seperti berikut dimana port 443 adalah port standard sehingga saat akan mengakses aplikasi kita bisa tanpa harus menggunakan port di url-nya.
<connector port="443" protocol="HTTP/1.1" SSLEnabled="true" maxThreads="150" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS" keystoreFile="/path/tempat/.keystore" keystorePass="password"/>
Jika kita ingin agar protokol http (tanpa penulisan port di url) di redirect ke protokol https maka kita akan setting pada bagian port http masih pada file server.xml dengan isian sebagai berikut
<connector port="80" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="443"/>
3. Konfigurasi File web.xml
Untuk langkah ini ada dua cara yang bisa dilakukan yaitu konfigurasi dilakukan di source code grailsnya atau di tomcatnya. Untuk setting di grailsnya anda terlebih dahulu harus install template dengan perintah berikut
grails install-templates
maka file web.xml akan didapatkan di folder /src/templates/war/web.xml dari tempat source grails berada. Jika kita ingin setting di tomcatnya maka buka %CATALINA_HOME%/conf/web.xml kemudian tambahkan isian berikut pada bagian sebelum tag penutup </web-app>. Adapun bagian yang harus ditambahkan adalah
<security-constraint> <web-resource-collection> <web-resource-name>securedapp</web-resource-name> <url-pattern>/*</url-pattern> </web-resource-collection> <user-data-constraint> <transport-guarantee>CONFIDENTIAL</transport-guarantee> </user-data-constraint> </security-constraint>
Demikian kegiatan ngoprek kali ini semoga bisa membantu.