Jump to content






Photo

การ config HTTPS/SSL ใน Tomcat

Posted by up1 , 01 July 2009 · 1306 views

ได้ requirement มาว่าจะต้องให้ระบบทำงานผ่าน HTTPS protocol เพื่อความปลอดภัยของข้อมูลในระดับหนึ่ง

จากการที่วางระบบจะใช้ Apache Tomcat 6 เป็น Web Server ดังนั้นจึงต้องมาปรับแต่งให้สนับสนุน HTTPS  หรือ SSL นั่นเอง

มีขั้นตอนดังนี้

1. ไปอ่านเอกสารที่นี่ http://tomcat.apache.../ssl-howto.html

2. ทำตามเอกสาร ดังนี้

2.1 สร้าง Certificate Keystore ด้วย keytool ดังนี้

Quote

%JAVA_HOME%\bin\keytool -genkey -alias tomcat -keyalg RSA  -keystore \path\to\my\keystore

\path\to\my\keystore คือ file ที่จะทำการสร้างขึ้นมา

ปล. ถ้าเคยสร้างมาแล้ว แต่ต้องการลบทิ้ง เพื่อสร้างใหม่ใช้คำสั่งดังนี้

Quote

%JAVA_HOME%\bin\keytool -delete -alias tomcat

2.2 ทำการแก้ไข server.xml ใน folder %CATALNA_HOME%\conf  โดยการเอา comment ในส่วนนี้ออก และปรับแต่งนิดหน่อยดังนี้

Quote

<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
               maxThreads="150" scheme="https" secure="true"
               clientAuth="false" sslProtocol="TLS"  keystoreFile="\path\to\my\keystore" keypass="your_password"  />

2.3 ลอง Restart Tomcat ขึ้นมา จะพบว่าสามารถเข้าใช้งานได้ทั้ง
- http://localhost:8080/
- https://localhost:8443/


2.4  แต่ใน Project ที่ต้องการสร้างนั้นจะให้เข้าได้เฉพาะ  HTTPS เท่านั้น ดังนั้นจึงต้องเพิ่ม config นี้ใน file web.xml ของ Project ด้วย ดังนี้

<security-constraint>
		<web-resource-collection>
			<web-resource-name>Protected Context</web-resource-name>
			<url-pattern>/*</url-pattern>
		</web-resource-collection>
		<user-data-constraint>
			<transport-guarantee>CONFIDENTIAL</transport-guarantee>
		</user-data-constraint>
</security-constraint>

แล้ว Restart Tomcat อีกครั้งจะพบว่าจะ redirect มาที่ HTTPS เสมอครับ




Search My Blog

April 2014

S M T W T F S
  12345
6789101112
131415161718 19
20212223242526
27282930