คำแนะนำทีละขั้นตอนเพื่อเปิดใช้งาน HTTPS หรือ SSL วิธีที่ถูกต้องบน Apache Tomcat Server – พอร์ต 8443
เผยแพร่แล้ว: 2021-04-03เป็นเวลาเกือบ 12 ปีแล้วที่ฉันเริ่มใช้ Apache Tomcat ฉันเชื่อว่าเมื่อฉันทำโปรเจ็กต์ชั้นประถมศึกษาปีที่ 1 ของฉัน มันเป็น Tomcat เวอร์ชัน 1.x
ตอนนี้เป็นเวอร์ชัน 8.0
แล้ว ส่วนใหญ่ฉันเคยติดต่อกับ Tomcat Server ในชีวิตการทำงานประจำวันของฉัน เพียงแต่ขาดมันไม่ได้
ใน Crunchify เราได้เผยแพร่บทความเกือบ 40 บทความเกี่ยวกับ Apache Tomcat
แล้ว ในบทช่วยสอนส่วนใหญ่ ฉันใช้เซิร์ฟเวอร์บนพอร์ต 8080 ซึ่งเป็นพอร์ตเริ่มต้นที่กำหนดค่าไว้ในไฟล์ server.xml
ในบทช่วยสอนนี้ เราจะอธิบายทุกขั้นตอนโดยละเอียดเกี่ยวกับ how to enable HTTPS/SSL on Apache Tomcat Server
มาเริ่มกันเลย:
ขั้นตอนที่ 1. สร้างที่เก็บคีย์
keytool
: เราจะสร้างคีย์ความปลอดภัยโดยใช้คำสั่ง keytool
ซึ่งเป็นเครื่องมือการจัดการคีย์และใบรับรอง
สั่งการ:
1 2 3 4 |
bash - 3.2 $ pwd / Users / Shared bash - 3.2 $ keytool - genkey - alias crunchify - keyalg RSA - keystore / Users / Shared / crunchify . keystore |
ไฟล์จะถูกสร้างขึ้นภายใต้โฟลเดอร์ /Users/Shared
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
bash - 3.2 $ keytool - genkey - alias crunchify - keyalg RSA - keystore / Users / Shared / crunchify . keystore Enter keystore password : Re - enter new password : What is your first and last name ? [ Unknown ] : App Shah What is the name of your organizational unit ? [ Unknown ] : Crunchify , LLC What is the name of your organization ? [ Unknown ] : Crunchify What is the name of your City or Locality ? [ Unknown ] : New York City What is the name of your State or Province ? [ Unknown ] : NY What is the two - letter country code for this unit ? [ Unknown ] : US Is CN = App Shah , OU = "Crunchify, LLC" , O = Crunchify , L = New York City , ST = NY , C = US correct ? [ no ] : yes Generating 2 , 048 bit RSA key pair and self - signed certificate ( SHA256withRSA ) with a validity of 90 days for : CN = App Shah , OU = "Crunchify, LLC" , O = Crunchify , L = New York City , ST = NY , C = US |
ฉันใช้ Mac OS X ดังนั้นให้เปลี่ยนเส้นทางของคุณตามนั้นหากคุณใช้ windows ฉันใช้รหัสผ่าน 123456
ขั้นตอนที่ 2. สร้างคำขอลงนามใบรับรองที่ลงนามด้วยตนเอง
1 2 |
bash - 3.2 $ keytool - certreq - keyalg RSA - alias crunchify - file crunchify . csr - keystore crunchify . keystore Enter keystore password : |
ใส่รหัสผ่าน: 123456
ขั้นตอนที่ 3 มาลองดูกันก่อนว่า Tomcat ทำงานบนพอร์ต 8080 ผ่าน HTTP
Start
เซิร์ฟเวอร์ Tomcat โดยใช้คำสั่ง: <tomcat_home>/bin/ startup.sh
ตรวจสอบให้แน่ใจว่าคุณอยู่ในตำแหน่งเส้นทางของแมวตัวผู้ที่ถูกต้อง
1 2 3 4 5 6 7 8 9 10 11 |
bash - 3.2 # pwd / Users / Shared / apache - tomcat - 9.0.30 / bin bash - 3.2 $ . / startup . sh Using CATALINA_BASE : / Users / Shared / apache - tomcat - 9.0.30 Using CATALINA_HOME : / Users / Shared / apache - tomcat - 9.0.30 Using CATALINA_TMPDIR : / Users / Shared / apache - tomcat - 9.0.30 / temp Using JRE_HOME : / Library / Java / JavaVirtualMachines / jdk - 13.0.1.jdk / Contents / Home Using CLASSPATH : / Users / Shared / apache - tomcat - 9.0.30 / bin / bootstrap . jar : / Users / Shared / apache - tomcat - 9.0.30 / bin / tomcat - juli . jar Tomcat started . |
กด URL: http://localhost:8080
เพื่อให้แน่ใจว่าเซิร์ฟเวอร์เปิดใช้งานอยู่
ขั้นตอนที่ 4 ตอนนี้ตรวจสอบอินสแตนซ์ของ Tomcat บนพอร์ต 8443 ผ่าน HTTPS
- ตอนนี้ตรวจสอบพอร์ต 8443 (HTTPS/SSL URL)
- ตี URL:
https://localhost:8443
- คุณควรเห็นข้อความแสดงข้อผิดพลาด หน้าไม่ควรโหลดเลย
ขั้นตอนที่ 5 อัปเดตไฟล์ /conf/server.xml
เนื่องจากเราได้สร้างที่เก็บคีย์และคำขอลงชื่อใบรับรองด้านบน เราจำเป็นต้องบอกให้ Tomcat ใช้สิ่งนั้น
- เปิดไฟล์
server.xml
ซึ่งอยู่ที่<tomcat_home>/conf/
และแก้ไขการตั้งค่า - ในกรณีของเราคือโฟลเดอร์
/Users/Shared/apache-tomcat-9.0.30/conf
เพิ่มส่วนด้านล่างโดยตรงไปยังไฟล์ server.xml:

1 2 3 4 5 |
< Connector port = "8443" protocol = "HTTP/1.1" SSLEnabled = "true" maxThreads = "150" scheme = "https" secure = "true" keystoreFile = "/Users/Shared/crunchify.keystore" keystorePass = "123456" clientAuth = "false" sslProtocol = "TLS" sslVerifyClient = "optional" sslEnabledProtocols = "TLSv1.2,TLSv1.1,SSLv2Hello" / > |
- รหัสผ่านที่นี่คือ
123456
ซึ่งฉันใช้ในStep-1
- โปรโตคอล: HTTP/1.1
บันทึกไฟล์. ต่อไปเราจะหยุดและเริ่ม Tomcat Server
ขั้นตอนที่ 6 หยุดและเริ่ม Apache Tomcat
- bash-3.2$ /Users/Shared/apache-tomcat-9.0.30/bin/shutdown.sh
- bash-3.2$ /Users/Shared/apache-tomcat-9.0.30/bin/startup.sh
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
bash - 3.2 $ / Users / Shared / apache - tomcat - 9.0.30 / bin / shutdown . sh Using CATALINA_BASE : / Users / Shared / apache - tomcat - 9.0.30 Using CATALINA_HOME : / Users / Shared / apache - tomcat - 9.0.30 Using CATALINA_TMPDIR : / Users / Shared / apache - tomcat - 9.0.30 / temp Using JRE_HOME : / Library / Java / JavaVirtualMachines / jdk - 13.0.1.jdk / Contents / Home Using CLASSPATH : / Users / Shared / apache - tomcat - 9.0.30 / bin / bootstrap . jar : / Users / Shared / apache - tomcat - 9.0.30 / bin / tomcat - juli . jar NOTE : Picked up JDK_JAVA_OPTIONS : -- add - opens = java . base / java . lang = ALL - UNNAMED -- add - opens = java . base / java . io = ALL - UNNAMED -- add - opens = java . rmi / sun . rmi . transport = ALL - UNNAMED bash - 3.2 $ / Users / Shared / apache - tomcat - 9.0.30 / bin / startup . sh Using CATALINA_BASE : / Users / Shared / apache - tomcat - 9.0.30 Using CATALINA_HOME : / Users / Shared / apache - tomcat - 9.0.30 Using CATALINA_TMPDIR : / Users / Shared / apache - tomcat - 9.0.30 / temp Using JRE_HOME : / Library / Java / JavaVirtualMachines / jdk - 13.0.1.jdk / Contents / Home Using CLASSPATH : / Users / Shared / apache - tomcat - 9.0.30 / bin / bootstrap . jar : / Users / Shared / apache - tomcat - 9.0.30 / bin / tomcat - juli . jar Tomcat started . |
ขั้นตอนที่ 7 ตรวจสอบ URL HTTPS และการรับรอง: https://localhost:8443
ตอนนี้กด URL ที่ปลอดภัยของ HTTPS อีกครั้งเพื่อตรวจสอบหน้าที่โหลดสำเร็จ
โครเมียม:
- ตามค่าเริ่มต้น
Chrome Blocks all insecure HTTPS
โหลด - เปิดใช้งานการ
Chrome flag
เพื่อโหลดใบรับรองที่ไม่ถูกต้องสำหรับทรัพยากรที่โหลดจาก localhost
- ไปที่ Chrome
- เปิดแท็บ
- ประเภท:
chrome://flags/#allow-insecure-localhost
- เปิดใช้งานการตั้งค่าสถานะจากดรอปดาวน์
- เปิด Chrome อีกครั้ง
Safari และ Mozilla Firefox:
-
Accept invalid certificate error
ที่ไม่ถูกต้องและเยี่ยมชมเว็บไซต์
คุณควรเห็นหน้า Apache Tomcat โหลดผ่าน HTTPS บนพอร์ต 8443
คุณพร้อมแล้ว คุณสังเกตเห็น red padlock
หรือไม่? ไม่ต้องกังวล เราไม่ได้ซื้อใบรับรอง SSL จาก Verisign หรือ Comodo
ในสภาพแวดล้อมการผลิต คุณอาจไม่เห็นเครื่องหมายกาชาดนั้น
คลิกที่ใบรับรองในเบราว์เซอร์และใบรับรองที่ลงนามเองโดยค่าเริ่มต้นควร
valid for 90
วัน
คะแนนโบนัส:
จะตรวจสอบ cert content
ของคุณโดยใช้คำสั่ง keytool
ได้อย่างไร
1 |
bash - 3.2 # keytool -list -keystore /Users/<username>/crunchify.keystore |
ผลลัพธ์:
1 2 3 4 5 6 7 8 9 10 11 12 |
bash - 3.2 $ keytool - list - keystore / Users / Shared / crunchify . keystore Enter keystore password : Keystore type : PKCS12 Keystore provider : SUN Your keystore contains 1 entry crunchify , Apr 24 , 2020 , PrivateKeyEntry , Certificate fingerprint ( SHA - 256 ) : 9D : 26 : 77 : E0 : E8 : 79 : 5B : 46 : 57 : 64 : 04 : 95 : B8 : 22 : 9C : E2 : 9F : A4 : 82 : CB : 01 : B5 : 80 : 62 : 75 : 90 : 48 : 27 : 5F : 60 : CB : C8 bash - 3.2 $ |