วิธีการใช้งาน SSL ใน Apache Tomcat

คำแนะนำทีละขั้นตอนในการตั้งค่าใบรับรอง SSL / TLS ในเซิร์ฟเวอร์ Tomcat.


หนึ่งในภารกิจสำคัญสำหรับการรักษาความปลอดภัย Tomcat คือการกำหนดค่าใบรับรอง SSL เพื่อให้สามารถเข้าถึงเว็บแอปพลิเคชันได้ HTTPS.

มีหลายวิธีในการบรรลุเป้าหมายนี้.

  • คุณสามารถยกเลิก SSL ได้ที่ load balancer
  • ใช้งาน SSL ที่ระดับ CDN
  • ใช้เว็บเซิร์ฟเวอร์เช่น Apache, Nginx ฯลฯ อยู่ด้านหน้าและใช้ SSL ที่นั่น

อย่างไรก็ตามหากคุณไม่ได้ใช้ข้อใดข้อหนึ่งข้างต้นหรือใช้สิ่งนี้เป็นส่วนหน้าหรือต้องการปรับใช้ SSL โดยตรงใน Tomcat ดังนั้นสิ่งต่อไปนี้จะช่วยคุณ.

ในบทความนี้เราจะทำดังต่อไปนี้.

  • สร้าง CSR (คำขอลงนามใบรับรอง)
  • อิมพอร์ตใบรับรองในไฟล์ที่เก็บคีย์
  • เปิดใช้งาน SSL ใน Tomcat
  • กำหนดค่าโปรโตคอล TLS
  • เปลี่ยน Tomcat เพื่อฟังบนพอร์ต 443
  • ทดสอบ Tomcat สำหรับช่องโหว่ SSL

เริ่มกันเลย…

กำลังเตรียมใบรับรอง SSL / TLS

ขั้นตอนแรกคือการสร้าง CSR และรับการเซ็นชื่อโดย ผู้ออกใบรับรอง. เราจะใช้ยูทิลิตี้ keytool เพื่อจัดการใบรับรอง.

  • เข้าสู่ระบบเซิร์ฟเวอร์ Tomcat
  • ไปที่เส้นทางการติดตั้ง tomcat
  • สร้างโฟลเดอร์ชื่อ ssl
  • ดำเนินการคำสั่งไปที่ สร้างที่เก็บคีย์

keytool -genkey -alias domainname -keyalg RSA -keysize 2048 -keystore filename.jks

มีตัวแปรสองตัวในคำสั่งด้านบนซึ่งคุณอาจต้องการเปลี่ยน.

  1. นามแฝง – ดีกว่าที่จะให้มันมีความหมายดังนั้นในอนาคตคุณสามารถจดจำได้อย่างรวดเร็ว ฉันชอบที่จะเก็บไว้เป็นชื่อโดเมน.
  2. ชื่อไฟล์ – อีกครั้งการเก็บชื่อโดเมนเป็นสิ่งที่ดี.

Ex:

[[email protected] ssl] # keytool -genkey -alias bloggerflare -keyalg RSA -keysize 2048 -keystore bloggerflare.jks
ป้อนรหัสผ่านที่เก็บคีย์:
ป้อนรหัสผ่านใหม่:
ชื่อและนามสกุลของคุณคืออะไร?
[ไม่ทราบ]: bloggerflare.com
ชื่อหน่วยองค์กรของคุณคืออะไร?
[ไม่ทราบ]: บล็อก
องค์กรของคุณชื่ออะไร?
[ไม่ทราบ]: Geek Flare
ชื่อเมืองหรือท้องที่ของคุณคืออะไร?
[ไม่ระบุ]:
รัฐหรือจังหวัดของคุณชื่ออะไร?
[ไม่ระบุ]:
รหัสประเทศสองตัวอักษรสำหรับหน่วยนี้คืออะไร?
[ไม่ระบุ]:
Is CN = bloggerflare.com, OU = บล็อก, O = Geek Flare, L = ไม่ทราบ, ST = ไม่ทราบ, C = ไม่ถูกต้องไม่ทราบ?
[ไม่]: ใช่

ป้อนรหัสผ่านที่สำคัญสำหรับ
(RETURN หากเหมือนกับรหัสผ่านที่เก็บคีย์):

[[email protected] SSL] #

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

เมื่อคุณให้ข้อมูลทั้งหมดแล้วมันจะสร้างไฟล์ที่เก็บคีย์บนไดเร็กทอรีการทำงานปัจจุบัน.

ต่อไปจะเป็น สร้าง CSR ใหม่ ด้วย keystore ที่สร้างขึ้นใหม่พร้อมคำสั่งด้านล่าง.

keytool -certreq -alias bloggerflare -keyalg RSA -file bloggerflare.csr -keystore bloggerflare.jks

สิ่งนี้จะสร้าง CSR ที่คุณต้องส่งไปยังผู้ออกใบรับรองเพื่อให้เซ็นชื่อ หากคุณกำลังเล่นอยู่คุณอาจลองใช้ผู้ให้บริการออกใบรับรองฟรีเพื่อรับของกำนัล.

ฉันได้รับใบรับรองที่ลงนามแล้วและจะดำเนินการต่อไป อิมพอร์ตเข้าสู่ keystore ด้วยคำสั่งด้านล่าง.

  • ใบรับรองหลักนำเข้าได้รับจากผู้ให้บริการ

keytool -importcert -alias root -file root -keystore bloggerflare.jks

  • นำเข้าใบรับรองระดับกลาง

keytool -importcert -alias ตัวกลาง -file ระดับกลาง -keystore bloggerflare.jks

บันทึก: ไม่มีการนำเข้ารูท & ระดับกลางคุณจะไม่สามารถนำเข้าใบรับรองโดเมนไปยังที่เก็บคีย์ หากคุณมีสื่อกลางมากกว่าหนึ่งรายการคุณต้องนำเข้าทั้งหมด.

  • นำเข้าใบรับรองโดเมน

keytool -importcert -file bloggerflare.cer -keystore bloggerflare.jks -alias bloggerflare

และคุณจะได้รับการยืนยันว่าติดตั้งแล้ว.

ติดตั้งการตอบกลับใบรับรองในที่เก็บคีย์

ยิ่งใหญ่, ดังนั้นที่เก็บคีย์ใบรับรองจึงพร้อมในขณะนี้ ขอย้ายไปยังขั้นตอนต่อไป.

หากคุณยังใหม่กับ SSL และสนใจที่จะเรียนรู้เพิ่มเติมโปรดลงทะเบียนในหลักสูตรออนไลน์นี้ – การดำเนินการ SSL / TLS.

เปิดใช้งาน SSL ใน Tomcat

สมมติว่าคุณยังเข้าสู่เซิร์ฟเวอร์ Tomcat ไปที่โฟลเดอร์ conf

  • ทำการสำรองข้อมูลของไฟล์ server.xml
  • ไปที่ส่วนและเพิ่มบรรทัด

SSLEnabled ="จริง" โครงการ ="https" keystoreFile ="SSL / bloggerflare.jks" keystorePass ="Chandan" clientAuth ="เท็จ" sslProtocol ="TLS"

  • อย่าลืมเปลี่ยนชื่อไฟล์ keystore และรหัสผ่านด้วย
  • รีสตาร์ท Tomcat และคุณจะเห็น Tomcat สามารถเข้าถึงได้ผ่าน HTTPS

หวาน!

พอร์ต HTTPS มาตรฐาน

ทำไม?

ถ้าคุณดูภาพหน้าจอด้านบนฉันกำลังเข้าถึง Tomcat มากกว่า 8080 ด้วย https ซึ่งไม่ได้มาตรฐานและมีเหตุผลมากกว่านี้.

  • คุณไม่ต้องการให้ผู้ใช้ใช้พอร์ตที่กำหนดเอง
  • เบราว์เซอร์จะแจ้งเตือนเมื่อมีการออกใบรับรองบนชื่อโดเมนโดยไม่มีพอร์ต

ดังนั้นแนวคิดคือการทำให้ Tomcat รับฟังบนพอร์ต 443 เพื่อให้สามารถเข้าถึงได้ทาง https: // โดยไม่มีหมายเลขพอร์ต.

หากต้องการทำเช่นนั้นให้แก้ไข server.xml ด้วยเครื่องมือแก้ไขที่คุณโปรดปราน

  • ไปที่ 
  • เปลี่ยนพอร์ตจาก 8080 เป็น 443
  • ควรมีลักษณะเช่นนี้
  • รีสตาร์ท Tomcat และเข้าถึงแอปพลิเคชันของคุณด้วย https โดยไม่มีหมายเลขพอร์ตใด ๆ

ประทับใจ, มันประสบความสำเร็จ!

การทดสอบช่องโหว่ SSL / TLS

สุดท้ายเราจะทำการทดสอบเพื่อให้แน่ใจว่าไม่เสี่ยงต่อการคุกคามออนไลน์.

มีเครื่องมือออนไลน์มากมายที่ฉันพูดถึงที่นี่และที่นี่ฉันจะใช้ SSL Labs.

  • ไปที่ SSL Labs และป้อน URL เพื่อเริ่มการทดสอบ

และมัน GREEN – คะแนน.

อย่างไรก็ตามมันเป็นความคิดที่ดีที่จะเลื่อนลงรายงานและดูว่าคุณพบช่องโหว่ใด ๆ และแก้ไขหรือไม่.

นั่นคือทั้งหมดสำหรับวันนี้.

ฉันหวังว่าสิ่งนี้จะช่วยให้คุณทราบขั้นตอนการรักษาความปลอดภัย Tomcat ด้วยใบรับรอง SSL / TLS หากคุณสนใจที่จะเรียนรู้เพิ่มเติมฉันขอแนะนำอย่างนี้ หลักสูตร.

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map