ในที่นี้เราจึงขอข้ามไปไม่กล่าวถึง (เนื่องจากก็ยังไม่เคยลองทำจริงๆ เหมือนกันฮับ) ดังนั้นเรามาลอง set สำหรับใช้กันเล่นๆ ดูก่อนละกันนะค่ะ โดยใช้ JSSE ซึ่งทำได้ไม่ยากเลย สำหรับ JSSE เราก็ใช้คู่กับไฟล์เหมือนกัน แต่เป็นไฟล์ที่เรียกกันว่า keystore ซึ่งสำหรับคนที่ใช้ java อยู่แล้วจะมี tool ที่มากับ java ที่ใช้ในการสร้างไฟล์นี้ โดยใช้คำสั่ง
%JAVA_HOME%\bin\keytool -genkey -alias tomcat -keyalg RSAจากนั้นใส่ password เป็น changeit (ซึ่งเป็น password default ที่ใช้กับ tomcat)
C:\Program Files\Java\jdk1.6.0_10\bin>keytool -genkey -alias tomcat -keyalg RSA
Enter keystore password:
Re-enter new password:
What is your first and last name?
[Unknown]:
What is the name of your organizational unit?
[Unknown]:
What is the name of your organization?
[Unknown]:
What is the name of your City or Locality?
[Unknown]:
What is the name of your State or Province?
[Unknown]:
What is the two-letter country code for this unit?
[Unknown]:
Is CN=Unknown, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=Unknown correct?
[no]: y
Enter key password for
(RETURN if same as keystore password):
ซึ่ง keytool จะทำการสร้างไฟล์ที่ชื่อ .keystore ไว้ที่ home directory ของเรา ในกรณีของ Windows มันก็จะสร้างไว้ที่ C:\Documents and Settings\username ซึ่ง Tomcat จะไปหาไฟล์ .keystore ที่ home directory โดย default ซึ่งเราไม่จำเป็นต้องกำหนดอะไรเพิ่มเติมอีก
หลังจากที่ได้ keystore มาแล้ว เราก็มาแก้ configuration ของ Tomcat เพื่อให้สามารถใช้ SSL ได้ โดยเพิ่ม config ในส่วนด้านล่างในไฟล์ conf\server.xml ซึ่งอยู่ใน Tomcat directory อีกที
maxThreads="150" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS" />
สำหรับกรณีที่เราต้องการวาง .keystore ไว้ที่อื่นที่ไม่ใช่ home directory จะต้องมีการกำหนดเพิ่ม keystoreFile และ keystorePass attribute เ้ข้าไป เช่น
<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
keystoreFile=" E:\Program Files\Apache Software Foundation\Tomcat6.0\conf\.keystore"
keystorePass="changeit"
clientAuth="false" sslProtocol="TLS" />
เท่านี้ก็เป็นอันเสร็จในส่วนของ Tomcat แต่สำหรับ ตัว web application ซึ่งถ้่าเราอยากให้ web เราใช้ SSL จะต้องกำหนดไว้ใน web.xml ด้วย โดยกำหนด tag
</security-constraint>
...
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>
Reference:
Apache Tomcat 6.0 - SSL Configuration HOW-TO
Configuring Tomcat 6 For https (SSL) Page
Setting Up SSL on Tomcat In 3 Easy Steps
No comments:
Post a Comment