การ config HTTPS/SSL ใน Tomcat
Posted by
up1
,
01 July 2009
·
613 views
ได้ requirement มาว่าจะต้องให้ระบบทำงานผ่าน HTTPS protocol เพื่อความปลอดภัยของข้อมูลในระดับหนึ่ง
จากการที่วางระบบจะใช้ Apache Tomcat 6 เป็น Web Server ดังนั้นจึงต้องมาปรับแต่งให้สนับสนุน HTTPS หรือ SSL นั่นเอง
มีขั้นตอนดังนี้
1. ไปอ่านเอกสารที่นี่ http://tomcat.apache.../ssl-howto.html
2. ทำตามเอกสาร ดังนี้
2.1 สร้าง Certificate Keystore ด้วย keytool ดังนี้
\path\to\my\keystore คือ file ที่จะทำการสร้างขึ้นมา
ปล. ถ้าเคยสร้างมาแล้ว แต่ต้องการลบทิ้ง เพื่อสร้างใหม่ใช้คำสั่งดังนี้
2.2 ทำการแก้ไข server.xml ใน folder %CATALNA_HOME%\conf โดยการเอา comment ในส่วนนี้ออก และปรับแต่งนิดหน่อยดังนี้
2.3 ลอง Restart Tomcat ขึ้นมา จะพบว่าสามารถเข้าใช้งานได้ทั้ง
- http://localhost:8080/
- https://localhost:8443/
2.4 แต่ใน Project ที่ต้องการสร้างนั้นจะให้เข้าได้เฉพาะ HTTPS เท่านั้น ดังนั้นจึงต้องเพิ่ม config นี้ใน file web.xml ของ Project ด้วย ดังนี้
แล้ว Restart Tomcat อีกครั้งจะพบว่าจะ redirect มาที่ HTTPS เสมอครับ
จากการที่วางระบบจะใช้ 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" />
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 เสมอครับ










