คุณกำลังดูเอกสารประกอบของ Apigee Edge
ไปที่
เอกสารประกอบของ Apigee X info
เอกสารนี้อธิบายวิธีตรวจสอบเชนใบรับรองก่อนอัปโหลดใบรับรองไปยัง คีย์สโตร์หรือ Trust Store ใน Apigee Edge กระบวนการนี้ใช้ชุดเครื่องมือ OpenSSL เพื่อตรวจสอบเชนใบรับรอง และใช้ได้กับทุกสภาพแวดล้อมที่มี OpenSSL
ก่อนเริ่มต้น
ก่อนที่จะใช้ขั้นตอนในเอกสารนี้ โปรดตรวจสอบว่าคุณเข้าใจหัวข้อต่อไปนี้
- หากไม่คุ้นเคยกับเชนใบรับรอง โปรดอ่าน เชนความน่าเชื่อถือ
- หากไม่คุ้นเคยกับไลบรารี OpenSSL โปรดอ่าน OpenSSL
- หากต้องการใช้ตัวอย่างบรรทัดคำสั่งในคู่มือนี้ ให้ติดตั้งหรืออัปเดตเป็น OpenSSL Client เวอร์ชันล่าสุด
- ตรวจสอบว่าใบรับรองอยู่ในรูปแบบ PEM หากใบรับรองไม่ได้อยู่ในรูปแบบ PEM ให้ใช้คำแนะนำใน หัวข้อการแปลงใบรับรองเป็นรูปแบบที่รองรับ เพื่อแปลงเป็นรูปแบบ PEM
การตรวจสอบเรื่องและผู้ออกใบรับรองสำหรับเชนทั้งหมด
หากต้องการตรวจสอบเชนใบรับรองโดยใช้คำสั่ง OpenSSL ให้ทำตามขั้นตอนที่อธิบายไว้ใน ส่วนต่อไปนี้
- การแยกเชนใบรับรอง
- การยืนยันเรื่องและผู้ออกใบรับรอง
- การยืนยันแฮชเรื่องและผู้ออกใบรับรอง
- การยืนยันการหมดอายุของใบรับรอง
การแยกเชนใบรับรอง
ก่อนตรวจสอบใบรับรอง คุณต้องแยกเชนใบรับรองออกเป็นใบรับรองที่แยกกัน โดยทำตามขั้นตอนต่อไปนี้
- เข้าสู่ระบบเซิร์ฟเวอร์ที่มี OpenSSL Client
- แยกเชนใบรับรองออกเป็นใบรับรองต่อไปนี้ (หากยังไม่ได้ดำเนินการ)
-
ใบรับรองเอนทิตี:
entity.pem -
ใบรับรองกลาง:
intermediate.pem -
ใบรับรองรูท:
root.pem
รูปต่อไปนี้แสดงตัวอย่างเชนใบรับรอง
การยืนยันเรื่องและผู้ออกใบรับรอง
ส่วนนี้อธิบายวิธีรับเรื่องและผู้ออกใบรับรอง รวมถึงยืนยันว่า คุณมีเชนใบรับรองที่ถูกต้อง
-
เรียกใช้คำสั่ง OpenSSL ต่อไปนี้เพื่อรับ
SubjectและIssuerสำหรับใบรับรองแต่ละรายการในเชนจากentityถึงrootและยืนยันว่าใบรับรองเหล่านั้นเป็นเชนใบรับรองที่เหมาะสมopenssl x509 -text -in certificate | grep -E '(Subject|Issuer):'โดยที่ certificate คือชื่อของใบรับรอง
-
ตรวจสอบว่าใบรับรองในเชนเป็นไปตามหลักเกณฑ์ต่อไปนี้
-
Subjectของใบรับรองแต่ละรายการตรงกับIssuerของใบรับรองก่อนหน้าในเชน (ยกเว้นใบรับรองEntity) -
SubjectและIssuerเหมือนกันสำหรับใบรับรองรูท
หากใบรับรองในเชนเป็นไปตามหลักเกณฑ์เหล่านี้ ระบบจะถือว่าเชนใบรับรองสมบูรณ์และถูกต้อง
ตัวอย่างการตรวจสอบเชนใบรับรอง
ตัวอย่างต่อไปนี้เป็นเอาต์พุตของคำสั่ง OpenSSL สำหรับเชนใบรับรองตัวอย่างที่มีใบรับรอง 3 รายการ
ใบรับรองเอนทิตี
openssl x509 -text -in entity.pem | grep -E '(Subject|Issuer):' Issuer: C = US, O = Google Trust Services, CN = GTS CA 1O1 Subject: C = US, ST = California, L = Mountain View, O = Google LLC, CN = *.enterprise.apigee.comใบรับรองกลาง
openssl x509 -text -in intermediate.pem | grep -E '(Subject|Issuer):' Issuer: OU = GlobalSign Root CA - R2, O = GlobalSign, CN = GlobalSign Subject: C = US, O = Google Trust Services, CN = GTS CA 1O1ใบรับรองรูท
openssl x509 -text -in root.pem | grep -E '(Subject|Issuer):' Issuer: OU = GlobalSign Root CA - R2, O = GlobalSign, CN = GlobalSign Subject: OU = GlobalSign Root CA - R2, O = GlobalSign, CN = GlobalSignในตัวอย่างที่แสดงด้านบน ให้สังเกตสิ่งต่อไปนี้
-
SubjectของใบรับรองกลางตรงกับIssuerของใบรับรองเอนทิตี -
SubjectของใบรับรองรูทตรงกับIssuerของ ใบรับรองกลาง -
SubjectและIssuerเหมือนกันในใบรับรองรูท
จากตัวอย่างข้างต้น คุณจะยืนยันได้ว่าเชนใบรับรองตัวอย่างถูกต้อง
-
การยืนยันแฮชเรื่องและผู้ออกใบรับรอง
ส่วนนี้อธิบายวิธีรับแฮชเรื่องและผู้ออกใบรับรอง รวมถึง ยืนยันว่าคุณมีเชนใบรับรองที่ถูกต้อง
การตรวจสอบลำดับแฮชของใบรับรองเป็นแนวทางปฏิบัติที่ดีเสมอ เนื่องจากช่วยระบุปัญหาต่างๆ ได้ เช่น ชื่อสามัญ (CN) ของใบรับรองมีช่องว่างหรืออักขระพิเศษที่ไม่ต้องการ
- เรียกใช้คำสั่ง OpenSSL ต่อไปนี้เพื่อรับลำดับ
hashสำหรับใบรับรองแต่ละรายการในเชนจากentityไปยังrootและยืนยันว่าใบรับรองเหล่านั้นเป็นเชนใบรับรองที่เหมาะสม - ตรวจสอบว่าใบรับรองในเชนเป็นไปตามหลักเกณฑ์ต่อไปนี้
-
Subjectของใบรับรองแต่ละรายการตรงกับIssuerของใบรับรองก่อนหน้า ในเชน (ยกเว้นใบรับรองEntity) -
SubjectและIssuerเหมือนกันสำหรับใบรับรองรูท -
subject hashของใบรับรองกลางตรงกับissuer hashของใบรับรองเอนทิตี -
subject hashของใบรับรองรูทตรงกับissuer hashของใบรับรองผู้ออกใบรับรอง -
subjectและissuer hashเหมือนกันในใบรับรองรูท
openssl x509 -hash -issuer_hash -noout -in certificate
โดยที่ certificate คือชื่อของใบรับรอง
หากใบรับรองในเชนเป็นไปตามหลักเกณฑ์เหล่านี้ ระบบจะถือว่าเชนใบรับรองสมบูรณ์และถูกต้อง
ตัวอย่างการตรวจสอบเชนใบรับรองผ่านลำดับแฮช
ตัวอย่างต่อไปนี้เป็นเอาต์พุตของคำสั่ง OpenSSL สำหรับเชนใบรับรองตัวอย่าง ที่มีใบรับรอง 3 รายการ
openssl x509 -in entity.pem -hash -issuer_hash -noout
c54c66ba #this is subject hash
99bdd351 #this is issuer hash
openssl x509 -in intermediate.pem -hash -issuer_hash -noout
99bdd351
4a6481c9
openssl x509 -in root.pem -hash -issuer_hash -noout
4a6481c9
4a6481c9
ในตัวอย่างที่แสดงด้านบน ให้สังเกตสิ่งต่อไปนี้
จากตัวอย่างข้างต้น คุณจะยืนยันได้ว่าเชนใบรับรองตัวอย่างถูกต้อง
การยืนยันการหมดอายุของใบรับรอง
ส่วนนี้อธิบายวิธีตรวจสอบว่าใบรับรองทั้งหมดในเชน หมดอายุแล้วหรือไม่ โดยใช้วิธีต่อไปนี้
- รับวันที่เริ่มต้นและวันที่สิ้นสุดของใบรับรอง
- รับสถานะการหมดอายุ
วันที่เริ่มต้นและวันที่สิ้นสุด
เรียกใช้คำสั่ง OpenSSL ต่อไปนี้เพื่อรับวันที่เริ่มต้นและวันที่สิ้นสุดสำหรับใบรับรองแต่ละรายการ
ในเชนจาก entity ไปยัง root และยืนยันว่าใบรับรองทั้งหมด
ในเชนมีผลบังคับใช้ (วันที่เริ่มต้นอยู่ก่อนวันนี้) และยังไม่หมดอายุ
ตัวอย่างการตรวจสอบการหมดอายุของใบรับรองผ่านวันที่เริ่มต้นและวันที่สิ้นสุด
openssl x509 -startdate -enddate -noout -in entity.pem notBefore=Feb 6 21:57:21 2020 GMT notAfter=Feb 4 21:57:21 2021 GMT
openssl x509 -startdate -enddate -noout -in intermediate.pem notBefore=Jun 15 00:00:42 2017 GMT notAfter=Dec 15 00:00:42 2021 GMT
openssl x509 -startdate -enddate -noout -in root.pem notBefore=Apr 13 10:00:00 2011 GMT notAfter=Apr 13 10:00:00 2022 GMT
สถานะการหมดอายุ
เรียกใช้คำสั่ง OpenSSL ต่อไปนี้เพื่อตรวจสอบว่าใบรับรองหมดอายุแล้วหรือ
กำลังจะหมดอายุในอีก N seconds คำสั่งนี้จะแสดงสถานะการหมดอายุของ
ใบรับรองในบริบทของวันที่ปัจจุบันในระบบ
openssl x509 -checkend <N Seconds> -noout -in certificate
โดยที่ certificate คือชื่อของใบรับรอง
ตัวอย่างการตรวจสอบการหมดอายุของใบรับรองผ่านตัวเลือก checkend
คำสั่งต่อไปนี้ใช้ 0 seconds เพื่อตรวจสอบว่าใบรับรองหมดอายุแล้วหรือไม่
openssl x509 -checkend 0 -noout -in entity.pem Certificate will not expire
openssl x509 -checkend 0 -noout -in intermediate.pem Certificate will not expire
openssl x509 -checkend 0 -noout -in root.pem Certificate will not expire
ในตัวอย่างนี้ ข้อความ Certificate will not expire บ่งชี้ว่าใบรับรองยังไม่หมดอายุ