Gampangnya Setting HTTPS di Apache Tomcat

Hi Teman-teman,

Saya baru mencoba dan berhasil mengimplementasi HTTPS untuk keperluan project saya. Saya pikir tadinya ribet karena saya belum familiar dengan HTTPS. Ternyata cukup mudah dan cepat melakukannya. Adapun beberapa hal yang harus kita siapkan untuk keperluan ini:

  • JDK
  • Apache Tomcat

Jangan lupa untuk melakukan “Setting Environment”:

  • JAVA_HOME
  • CATALINA_HOME
  • CLASSPATH
  • PATH

Di sini saya tidak akan menjelaskan bagaimana installasi JDK dan Tomcat. Begitu juga untuk setting environment, karena cukup banyak artikel di situs lain yang menjelaskan hal-hal mendasar ini. Kita berfokus kepada Implementasi SSL di Tomcat saja.

OK!!

Langkah pertama … Buat keystore yang akan diperlukan Tomcat. Keystore diperlukan oleh Tomcat untuk melakukan autentikasi sertifikat. Kita akan memerlukan “keytool” bawaan dari JDK. Command-nya seperti ini:

keytool -genkeypair -alias <aliasname> -keyalg RSA -keysize 1024 -dname "CN=localhost, OU=Organization, O=Company Name, L=City, S=State, C=US" -validity 365 -keystore <target_file>

Contohnya:

keytool -genkeypair -alias martinssl -keyalg RSA -keysize 1024 -dname "CN=localhost, OU=Java Team, O=Kantor saya, L=Jakarta, S=DKI jakarta, C=ID" -validity 365 -keystore c:\martinssl.bin

Setelah “keytool” dijalankan, anda akan diminta memasukan password

Enter keystore password: <masukan password baru>

Misalnya:

Enter keystore password: passwordssl

Jangan lupa target folder/lokasi tujuan keystore karena akan anda gunakan untuk setting di konfigurasi Tomcat. Contohnya di sini “C:\”.

OK! Anda sudah selesai bikin Keystore. Sekarang menuju ke folder installasi Tomcat anda, cari file server.xml di bawah <tomcat_home>/conf. Cari settingan SSL, biasanya dalam kondisi di comment/remark. Anda buat dengan seperti ini:

<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol" SSLEnabled="true" secure="true" enableLookups="false" disableUploadTimeout="true" keystoreFile="<lokasi keystore lengkap dengan foldernya>" keystorePass="<password yang sudah dibuat>" acceptCount="100" maxThreads="25" scheme="https" clientAuth="false" sslProtocol="TLS" />

Dari contoh yang sudah dibuat, akan jadi seperti ini:

<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol" SSLEnabled="true" secure="true" enableLookups="false" disableUploadTimeout="true" keystoreFile="c:\martinssl.bin" keystorePass="passwordssl" acceptCount="100" maxThreads="25" scheme="https" clientAuth="false" sslProtocol="TLS" />

Port standard yang digunakan SSL adalah 8443, atau kalau mau pakai nama domain saja (default) menggunakan 443 saja.

Tomcat telah siap menggunakan HTTPS. Anda bisa Restart Tomcat anda, atau Startup jika memang belum dinyalakan. Selesai sudah persiapannya, setelah tomcat berhasil “up”. Pastikan di Log startup-nya Tomcat settingan SSL anda tidak bermasalah. Misalnya kalau contoh di atas ….

Oct 15, 2011 5:04:07 PM org.apache.catalina.core.AprLifecycleListener init
INFO: Loaded APR based Apache Tomcat Native library 1.1.20.
Oct 15, 2011 5:04:07 PM org.apache.catalina.core.AprLifecycleListener init
INFO: APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true].
Oct 15, 2011 5:04:08 PM org.apache.coyote.http11.Http11AprProtocol init
INFO: Initializing Coyote HTTP/1.1 on http-8080
Oct 15, 2011 5:04:08 PM org.apache.tomcat.util.net.NioSelectorPool getSharedSelector
INFO: Using a shared selector for servlet write/read
Oct 15, 2011 5:04:08 PM org.apache.coyote.http11.Http11NioProtocol init
INFO: Initializing Coyote HTTP/1.1 on http-8443
Oct 15, 2011 5:04:08 PM org.apache.coyote.ajp.AjpAprProtocol init
INFO: Initializing Coyote AJP/1.3 on ajp-8009
...
INFO: Server startup in 3535 ms

Jika menggunakan contoh ini, bisa coba akses ke :

https://localhost:8443

Untuk membuat aplikasi anda selalu berjalan di atas, tambahkan konfigurasi ini di web.xml pada web aplikasi anda:

<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>

/* artinya aplikasi anda akan mengakses semua resources menggunakan HTTPS. CONFIDENTIAL adalah memberitahu server bahwa aplikasi ini akan berjalan di HTTPS.
Selamat mencoba! Semoga bermanfaat!

sumber : http://techtracer.com/2007/09/12/setting-up-ssl-on-tomcat-in-3-easy-steps/, dengan beberapa penyesuaian karena gak jalan hehehe

About upmar102wong

Seorang Planner, Pengatur strategi, negosiator, consular, advisor, mentor, mediator. bangga dg istri yg cantik, pandai, solihah. dia seorang dokter. sekarang saya seorang Development Manager di suatu IT Consulting. Saya suka banget sama kungfu, saya belajar Pa'chi chuan dan Taichi chuan sejak 1998 dari seorang shifu dan seorang guru. saya suka main catur igo, suka baca, nonton film juga. suka bersahabat dg banyak org.
This entry was posted in Information Technologies. Bookmark the permalink.

6 Responses to Gampangnya Setting HTTPS di Apache Tomcat

  1. yusi says:

    hehehe tipsnya banyak membantuuu….
    makasih…. ^-^

  2. bowo says:

    setelah muter2 cari cara di warung sebelah, akhirnya nemu yg cocok dan pas.

    terima kasih😀

  3. Pingback: Setting HTTPS di Apache Tomcat « Azis Blog's 2 Stroke Lovers

    • upmar102wong says:

      Betul Mas, perlu disesuaikan, itu hanya contoh saja dan garis besar memberi gambaran umum. Sudah jalan dan diimplementasi di beberapa Bank yg aplikasinya kamu develop koq. Terima kasih🙂

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s