การติดตั้งใบรับรอง SSL บนเซิร์ฟเวอร์ Tomcat (รูปแบบ JKS)
คุณสามารถทำให้เซิร์ฟเวอร์ Tomcat รองรับการเข้าถึงแบบปลอดภัย HTTPS ได้โดยการติดตั้งใบรับรอง SSL ลงบนเซิร์ฟเวอร์ Tomcat บทความนี้แนะนำวิธีการติดตั้งใบรับรอง SSL บนเซิร์ฟเวอร์ Tomcat
เอกสารนี้ใช้ Tomcat เวอร์ชัน tomcat9.0.13 เป็นตัวอย่าง ก่อนการติดตั้ง โปรดยืนยันว่าพอร์ต 443 ไม่ถูกใช้งานอยู่ หากพอร์ต 443 ถูกใช้งานแล้ว โปรดผูกพอร์ตอื่นเมื่อติดตั้งใบรับรอง
การรับใบรับรอง
-
หลังจากเราออกใบรับรองให้คุณแล้ว เราจะส่งไฟล์ใบรับรอง (.zip) ในรูปแบบบีบอัดให้คุณ ภายในไฟล์บีบอัดมีโฟลเดอร์สี่โฟลเดอร์ซึ่งสอดคล้องกับใบรับรองสี่รูปแบบ: Tomcat, Nginx, IIS, Apache; เอกสารนี้ใช้รูปแบบ JKS ในการติดตั้ง โดยใช้ใบรับรองภายในโฟลเดอร์ Tomcat
-
โฟลเดอร์ Tomcat จะประกอบด้วยไฟล์สามไฟล์
domain_com.jksไฟล์ใบรับรองdomain_com.keyไฟล์คีย์ส่วนตัวpassword.txtไฟล์รหัสผ่านใบรับรอง
การติดตั้งใบรับรอง SSL
- คัดลอกไฟล์ใบรับรอง
domain_com.jksที่ได้รับจากไดเรกทอรีภายในเครื่องไปยังไดเรกทอรี/usr/tomcat9.0.13/confบนเซิร์ฟเวอร์ Tomcat
- ชื่อพาธของ Tomcat ในเวอร์ชันต่างกันอาจแตกต่างกันเล็กน้อย โปรดดำเนินการตามพาธที่สอดคล้องกับบริการของคุณ
- หากเวอร์ชัน JDK ของผู้ใช้บางรายแตกต่างจากเวอร์ชัน JDK ของสภาพแวดล้อมที่เราใช้แปลงไฟล์ JKS อาจจำเป็นต้องแปลงไฟล์ JKS ด้วยตนเองในสภาพแวดล้อมการใช้งานปัจจุบัน
โปรดอ้างอิงคำสั่งด้านล่างเพื่อแปลงไฟล์ JKS โดยอย่าลืมแทนที่พารามิเตอร์ที่เกี่ยวข้อง:
keytool -importkeystore -srckeystore domain.pfx -srcstoretype pkcs12 -srcstorepass pfxpassword -destkeystore domain.jks -deststoretype jks -deststorepass pfxpassword
โปรดแทนที่ domain.pfx (ไฟล์ pfx ในโฟลเดอร์ IIS) pfxpassword (รหัสผ่านของไฟล์ pfx) domain.jks (ชื่อไฟล์ jks หลังการแปลง) pfxpassword (รหัสผ่านของไฟล์ PFX)
- แก้ไขไฟล์
server.xmlภายใต้ไดเรกทอรี/usr/tomcat9.0.13/confเพิ่มคุณสมบัติ Connector ในไฟล์server.xmlโดยมีเนื้อหาดังนี้:
<Connector port="443" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
keystoreFile="/usr/tomcat9.0.13/conf/domain_com.pfx" <! -- เส้นทางของใบรับรอง -->
keystorePass="รหัสผ่านใบรับรอง" <! -- กรุณาแทนที่ด้วยเนื้อหาจากไฟล์รหัสผ่าน password.txt -->
clientAuth="false"/>
- บันทึกไฟล์กำหนดค่า และรันคำสั่งต่อไปนี้ในไดเรกทอรี bin เพื่อยืนยันว่าการกำหนดค่าถูกต้อง
./configtest.sh
- รีสตาร์ท Tomcat โดยรันคำสั่งต่อไปนี้ในไดเรกทอรี bin:
./shutdown.sh #关闭 Tomcat 服务器
./startup.sh #启动 Tomcat 服务器
การทดสอบใบรับรอง SSL
ป้อนชื่อโดเมนที่ผูกกับใบรับรอง SSL ในแถบที่อยู่ของเบราว์เซอร์ เพื่อทดสอบว่าติดตั้งใบรับรอง SSL ของคุณสำเร็จหรือไม่ หากสำเร็จ แถบที่อยู่ของเบราว์เซอร์จะแสดงไอคอนแม่กุญแจนิรภัย คลิกเพื่อดูข้อมูลใบรับรองได้

การตั้งค่าความปลอดภัยสำหรับการเปลี่ยนเส้นทาง HTTP ไปยัง HTTPS อัตโนมัติ (ไม่บังคับ)
หากคุณต้องการเปลี่ยนเส้นทางคำขอ HTTP ไปยัง HTTPS โดยอัตโนมัติ คุณสามารถตั้งค่าได้ดังนี้:
- แก้ไขไฟล์
web.xmlภายใต้ไดเรกทอรี/usr/tomcat9.0.13/confและค้นหาแท็ก</welcome-file-list> - โปรดขึ้นบรรทัดใหม่หลังแท็กปิด
</welcome-file-list>และเพิ่มเนื้อหาต่อไปนี้
<login-config>
<!-- Authorization setting for SSL -->
<auth-method>CLIENT-CERT</auth-method>
<realm-name>Client Cert Users-only Area</realm-name>
</login-config>
<security-constraint>
<!-- Authorization setting for SSL -->
<web-resource-collection >
<web-resource-name >SSL</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>
- แก้ไขไฟล์
server.xmlในไดเรกทอรี/usr/tomcat9.0.13/confโดยเปลี่ยนพารามิเตอร์redirectPortเป็นพอร์ตconnectorของ SSL นั่นคือพอร์ต 443 ดังนี้:
<Connector port="80" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="443" />
- บันทึกไฟล์คอนฟิก และรันคำสั่งต่อไปนี้ในไดเรกทอรี
binเพื่อยืนยันว่าคอนฟิกถูกต้อง
./configtest.sh
- หากการกำหนดค่าไม่มีปัญหา เพียงรีสตาร์ทเซิร์ฟเวอร์ Tomcat ก็สามารถเข้าถึงผ่านโดเมนเนมได้ โดยจะเปลี่ยนเส้นทางจาก HTTP ไปยัง HTTPS โดยอัตโนมัติ
./shutdown.sh #关闭 Tomcat 服务器
./startup.sh #启动 Tomcat 服务器