คุณกำลังดูเอกสารประกอบของ Apigee Edge
ไปที่เอกสารประกอบของ Apigee X ข้อมูล
เอกสารนี้อธิบายวิธีตรวจสอบเชนใบรับรองก่อนที่คุณจะอัปโหลดใบรับรองไปยังคีย์สโตร์หรือ 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
เพื่อตรวจสอบว่าใบรับรองหมดอายุหรือไม่
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
บ่งบอกว่าใบรับรองยังไม่หมดอายุ