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

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

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

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

  • คุณสามารถยุติ SSL ได้ที่โหลดบาลานเซอร์
  • ใช้ 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

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

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

    [[email protected] ssl]# keytool -genkey -alias bloggerflare -keyalg RSA -keysize 2048 -keystore bloggerflare.jks
    Enter keystore password:
    Re-enter new password:
    What is your first and last name?
    [Unknown]: bloggerflare.com
    What is the name of your organizational unit?
    [Unknown]: Blogging
    What is the name of your organization?
    [Unknown]: Geek Flare
    What is the name of your City or Locality?
    [Unknown]:
    What is the name of your State or Province?
    [Unknown]:
    What is the two-letter country code for this unit?
    [Unknown]:
    Is CN=bloggerflare.com, OU=Blogging, O=Geek Flare, L=Unknown, ST=Unknown, C=Unknown correct?
    [no]: yes
    
    Enter key password for <bloggerflare>
    (RETURN if same as keystore password):
    
    [[email protected] ssl]#

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

      วิธีการส่งรหัสบน Skype ด้วยการจัดรูปแบบที่เหมาะสม

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

    ถัดไปคือการสร้าง CSR ใหม่ด้วยที่เก็บคีย์ที่สร้างขึ้นใหม่ด้วยคำสั่งด้านล่าง

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

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

    ฉันได้รับใบรับรองแล้วและจะดำเนินการนำเข้าคีย์สโตร์ด้วยคำสั่งด้านล่าง

    • นำเข้าใบรับรองหลักโดยผู้ให้บริการ
    keytool -importcert -alias root -file root -keystore bloggerflare.jks
    • นำเข้าใบรับรองระดับกลาง
    keytool -importcert -alias intermediate -file intermediate -keystore bloggerflare.jks

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

    • นำเข้าใบรับรองโดเมน
    keytool -importcert -file bloggerflare.cer -keystore bloggerflare.jks -alias bloggerflare

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

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

    เยี่ยมมาก ตอนนี้ที่เก็บคีย์ใบรับรองพร้อมแล้ว ไปที่ขั้นตอนต่อไป

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

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

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

    • ทำสำเนาสำรองของไฟล์ server.xml
    • ไปที่
    SSLEnabled="true" scheme="https" keystoreFile="ssl/bloggerflare.jks" keystorePass="chandan" clientAuth="false" sslProtocol="TLS"
    • อย่าลืมเปลี่ยนชื่อไฟล์ที่เก็บคีย์และรหัสผ่านด้วยของคุณ
    • รีสตาร์ท tomcat และคุณควรเห็น Tomcat สามารถเข้าถึงได้ผ่าน HTTPS
      สร้างจานสีบน iPhone ของคุณและซิงค์กับ Mac ของคุณ

    หวาน!

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

    ทำไม

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

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

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

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

    • ไปที่ <พอร์ตเชื่อมต่อ =”8080″
    • เปลี่ยนพอร์ตจาก 8080 เป็น 443
    • หน้าตาก็จะประมาณนี้
    <Connector port="443" protocol="HTTP/1.1"
    connectionTimeout="20000"
    SSLEnabled="true" scheme="https" keystoreFile="ssl/bloggerflare.jks" keystorePass="chandan" clientAuth="false" sslProtocol="TLS"
    redirectPort="8443" />
    • รีสตาร์ท Tomcat และเข้าถึงแอปพลิเคชันของคุณด้วย https โดยไม่มีหมายเลขพอร์ต

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

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

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

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

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

    และมันเป็นสีเขียว – การให้คะแนน

    อย่างไรก็ตาม คุณควรเลื่อนลงมาในรายงานและดูว่าคุณพบช่องโหว่และแก้ไขหรือไม่

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

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

    เรื่องล่าสุด

    x