คุณกำลังดูเอกสารประกอบ Apigee Edge
ไปที่
เอกสารประกอบเกี่ยวกับ Apigee X. ข้อมูล
เอกสารนี้อธิบายวิธีตรวจสอบชุดใบรับรองก่อนที่คุณจะอัปโหลดใบรับรองไปที่ Keystore หรือ Truststore ใน Apigee Edge กระบวนการดังกล่าวต้องอาศัย ชุดเครื่องมือ OpenSSL สำหรับตรวจสอบใบรับรอง เชน และใช้ได้ในสภาพแวดล้อมใดๆ ที่มี OpenSSL ให้บริการ
ก่อนเริ่มต้น
ก่อนที่จะใช้ขั้นตอนในเอกสารนี้ โปรดทำความเข้าใจหัวข้อต่อไปนี้
- หากคุณไม่คุ้นเคยกับกลุ่มใบรับรอง โปรดอ่าน เชนความน่าเชื่อถือ
- หากคุณไม่คุ้นเคยกับไลบรารี OpenSSL โปรดอ่าน OpenSSL
- หากต้องการใช้ตัวอย่างบรรทัดคำสั่งในคู่มือนี้ ให้ติดตั้งหรืออัปเดตเป็น ไคลเอ็นต์ OpenSSL เวอร์ชันล่าสุด
- ตรวจสอบว่าใบรับรองอยู่ในรูปแบบ PEM หากใบรับรองไม่ได้อยู่ในรูปแบบ PEM ให้ใช้คำแนะนำใน กำลังแปลงใบรับรองเป็นรูปแบบที่รองรับเพื่อแปลงใบรับรองเป็นรูปแบบ PEM
กำลังตรวจสอบหัวเรื่องใบรับรองและผู้ออกใบรับรองสำหรับเชนทั้งหมด
ในการตรวจสอบเชนใบรับรองโดยใช้คำสั่ง OpenSSL โปรดทำตามขั้นตอนที่อธิบายไว้ใน ส่วนต่อไปนี้
- การแยกชุดใบรับรอง
- การยืนยันเรื่องและผู้ออกใบรับรอง
- การยืนยันเรื่องของใบรับรองและแฮชผู้ออกบัตร
- การยืนยันว่าใบรับรองหมดอายุ
การแยกชุดใบรับรอง
ก่อนตรวจสอบใบรับรอง คุณต้องแยกสายใบรับรองออกเป็น โดยใช้ขั้นตอนต่อไปนี้
- เข้าสู่ระบบเซิร์ฟเวอร์ที่มีไคลเอ็นต์ OpenSSL อยู่
- แยกเชนใบรับรองออกเป็นใบรับรองต่อไปนี้ (หากยังไม่ได้ทำ)
-
ใบรับรองเอนทิตี:
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 คือชื่อของใบรับรอง
ตัวอย่างการตรวจสอบการหมดอายุของใบรับรองผ่านตัวเลือกการตรวจสอบ
คำสั่งต่อไปนี้ใช้ 0 seconds
เพื่อตรวจสอบว่าใบรับรองเป็นแบบ Alread หรือไม่
หมดอายุหรือไม่:
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
ระบุว่า
ใบรับรองยังไม่หมดอายุ