Skip to main content

การติดตั้งใบรับรอง SSL บนเซิร์ฟเวอร์ Tomcat (รูปแบบ JKS)

คุณสามารถทำให้เซิร์ฟเวอร์ Tomcat รองรับการเข้าถึงแบบปลอดภัย HTTPS ได้โดยการติดตั้งใบรับรอง SSL ลงบนเซิร์ฟเวอร์ Tomcat บทความนี้แนะนำวิธีการติดตั้งใบรับรอง SSL บนเซิร์ฟเวอร์ Tomcat

หมายเหตุ

เอกสารนี้ใช้ Tomcat เวอร์ชัน tomcat9.0.13 เป็นตัวอย่าง ก่อนการติดตั้ง โปรดยืนยันว่าพอร์ต 443 ไม่ถูกใช้งานอยู่ หากพอร์ต 443 ถูกใช้งานแล้ว โปรดผูกพอร์ตอื่นเมื่อติดตั้งใบรับรอง

การรับใบรับรอง

  1. หลังจากเราออกใบรับรองให้คุณแล้ว เราจะส่งไฟล์ใบรับรอง (.zip) ในรูปแบบบีบอัดให้คุณ ภายในไฟล์บีบอัดมีโฟลเดอร์สี่โฟลเดอร์ซึ่งสอดคล้องกับใบรับรองสี่รูปแบบ: Tomcat, Nginx, IIS, Apache; เอกสารนี้ใช้รูปแบบ JKS ในการติดตั้ง โดยใช้ใบรับรองภายในโฟลเดอร์ Tomcat

  2. โฟลเดอร์ Tomcat จะประกอบด้วยไฟล์สามไฟล์

  • domain_com.jks ไฟล์ใบรับรอง
  • domain_com.key ไฟล์คีย์ส่วนตัว
  • password.txt ไฟล์รหัสผ่านใบรับรอง

การติดตั้งใบรับรอง SSL

  1. คัดลอกไฟล์ใบรับรอง 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)

  1. แก้ไขไฟล์ 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"/>
  1. บันทึกไฟล์กำหนดค่า และรันคำสั่งต่อไปนี้ในไดเรกทอรี bin เพื่อยืนยันว่าการกำหนดค่าถูกต้อง
./configtest.sh
  1. รีสตาร์ท Tomcat โดยรันคำสั่งต่อไปนี้ในไดเรกทอรี bin:
./shutdown.sh  #关闭 Tomcat 服务器
./startup.sh #启动 Tomcat 服务器

การทดสอบใบรับรอง SSL

ป้อนชื่อโดเมนที่ผูกกับใบรับรอง SSL ในแถบที่อยู่ของเบราว์เซอร์ เพื่อทดสอบว่าติดตั้งใบรับรอง SSL ของคุณสำเร็จหรือไม่ หากสำเร็จ แถบที่อยู่ของเบราว์เซอร์จะแสดงไอคอนแม่กุญแจนิรภัย คลิกเพื่อดูข้อมูลใบรับรองได้

ผลลัพธ์ใบรับรอง SSL

การตั้งค่าความปลอดภัยสำหรับการเปลี่ยนเส้นทาง HTTP ไปยัง HTTPS อัตโนมัติ (ไม่บังคับ)

หากคุณต้องการเปลี่ยนเส้นทางคำขอ HTTP ไปยัง HTTPS โดยอัตโนมัติ คุณสามารถตั้งค่าได้ดังนี้:

  1. แก้ไขไฟล์ web.xml ภายใต้ไดเรกทอรี /usr/tomcat9.0.13/conf และค้นหาแท็ก </welcome-file-list>
  2. โปรดขึ้นบรรทัดใหม่หลังแท็กปิด </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>
  1. แก้ไขไฟล์ server.xml ในไดเรกทอรี /usr/tomcat9.0.13/conf โดยเปลี่ยนพารามิเตอร์ redirectPort เป็นพอร์ต connector ของ SSL นั่นคือพอร์ต 443 ดังนี้:
<Connector port="80" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="443" />
  1. บันทึกไฟล์คอนฟิก และรันคำสั่งต่อไปนี้ในไดเรกทอรี bin เพื่อยืนยันว่าคอนฟิกถูกต้อง
./configtest.sh
  1. หากการกำหนดค่าไม่มีปัญหา เพียงรีสตาร์ทเซิร์ฟเวอร์ Tomcat ก็สามารถเข้าถึงผ่านโดเมนเนมได้ โดยจะเปลี่ยนเส้นทางจาก HTTP ไปยัง HTTPS โดยอัตโนมัติ
./shutdown.sh  #关闭 Tomcat 服务器
./startup.sh #启动 Tomcat 服务器