Skip to main content

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

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

หมายเหตุ

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

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

  1. หลังจากที่เราออกใบรับรองให้คุณแล้ว เราจะมอบไฟล์ใบรับรอง (.zip) ในรูปแบบบีบอัดให้คุณ ภายในแพ็คเกจบีบอัดมีสี่โฟลเดอร์ซึ่งสอดคล้องกับใบรับรองสี่รูปแบบ: Tomcat, Nginx, IIS, Apache; เอกสารนี้ใช้รูปแบบ PFX ในการติดตั้งจึงจำเป็นต้องใช้ใบรับรองในโฟลเดอร์ IIS (โฟลเดอร์ที่ต่างกันเพียงมีรูปแบบไฟล์ที่แตกต่างกัน การใช้ไฟล์จากโฟลเดอร์อื่นไม่ขัดแย้งกัน)
  2. โฟลเดอร์ IIS จะประกอบด้วยสามไฟล์
  • domain_com.pfx ไฟล์ใบรับรอง
  • domain_com.key ไฟล์กุญแจส่วนตัว
  • password.txt ไฟล์รหัสผ่านใบรับรอง

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

  1. คัดลอกไฟล์ใบรับรอง domain_com.pfx ที่ได้รับจากไดเรกทอรีในเครื่องไปยังไดเรกทอรี /usr/tomcat9.0.13/conf ของเซิร์ฟเวอร์ Tomcat ชื่อพาธของ Tomcat เวอร์ชันต่างกันจะมีความแตกต่างเล็กน้อย โปรดไปยังพาธที่สอดคล้องกับบริการของคุณเพื่อดำเนินการ
  2. แก้ไขไฟล์ server.xml ในไดเรกทอรี /usr/tomcat9.0.13/conf เพิ่มแอตทริบิวต์ Connector ในไฟล์ server.xml โดยมีเนื้อหาดังนี้:
<Connector port="443"  
protocol="HTTP/1.1"
SSLEnabled="true"
scheme="https"
secure="true"
keystoreFile="/usr/tomcat9.0.13/conf/domain_com.pfx" <! -- พาธของใบรับรอง -->
keystoreType="PKCS12"
keystorePass="รหัสผ่านใบรับรอง" <! -- โปรดแทนที่ด้วยเนื้อหาในไฟล์ password.txt -->
clientAuth="false"
SSLProtocol="TLSv1.1+TLSv1.2+TLSv1.3"
ciphers="TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_256_CBC_SHA256"/>
  1. บันทึกไฟล์คอนฟิก และรันคำสั่งต่อไปนี้ในไดเรกทอรี bin เพื่อยืนยันว่าคอนฟิกถูกต้อง
./configtest.sh
  1. รีสตาร์ท Tomcat และรันคำสั่งต่อไปนี้ในไดเรกทอรี bin:
./shutdown.sh  #关闭 Tomcat 服务器
./startup.sh #启动 Tomcat 服务器

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

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

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

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

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

  1. แก้ไขไฟล์ /usr/tomcat9.0.13/conf ในไดเรกทอรี web.xml และค้นหาแท็ก </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 服务器