กําลังตรวจสอบชุดใบรับรอง

คุณกำลังดูเอกสารประกอบของ Apigee Edge
ไปที่เอกสารประกอบของ Apigee X
ข้อมูล

เอกสารนี้อธิบายวิธีตรวจสอบเชนใบรับรองก่อนที่คุณจะอัปโหลดใบรับรองไปยังคีย์สโตร์หรือ Truststore ใน Apigee Edge กระบวนการนี้ต้องอาศัยชุดเครื่องมือ OpenSSL เพื่อตรวจสอบชุดใบรับรองและใช้ได้กับสภาพแวดล้อมใดก็ได้ที่ OpenSSL พร้อมให้บริการ

ก่อนเริ่มต้น

ก่อนทําตามขั้นตอนในเอกสารฉบับนี้ โปรดทําความเข้าใจหัวข้อต่อไปนี้

  • หากคุณไม่คุ้นเคยกับเชนใบรับรอง โปรดอ่านเชนความน่าเชื่อถือ
  • หากคุณไม่คุ้นเคยกับไลบรารี OpenSSL โปรดอ่าน OpenSSL
  • หากต้องการใช้ตัวอย่างบรรทัดคำสั่งในคู่มือนี้ ให้ติดตั้งหรืออัปเดตไคลเอ็นต์ OpenSSL เป็นเวอร์ชันล่าสุด
  • ตรวจสอบว่าใบรับรองอยู่ในรูปแบบ PEM หากใบรับรองไม่ได้อยู่ในรูปแบบ PEM ให้ใช้วิธีการใน การแปลงใบรับรองเป็นรูปแบบที่รองรับเพื่อแปลงเป็นรูปแบบ PEM

ตรวจสอบชื่อใบรับรองและผู้ออกสำหรับห่วงโซ่ทั้งหมด

หากต้องการตรวจสอบเชนใบรับรองโดยใช้คำสั่ง OpenSSL ให้ทำตามขั้นตอนที่อธิบายไว้ในส่วนต่อไปนี้

การแยกชุดใบรับรอง

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

  1. เข้าสู่ระบบเซิร์ฟเวอร์ที่มีไคลเอ็นต์ OpenSSL อยู่
  2. แยกสายใบรับรองออกเป็นใบรับรองต่อไปนี้ (หากยังไม่ได้ทำ)
    • ใบรับรองเอนทิตี: entity.pem
    • ใบรับรองกลาง: intermediate.pem
    • ใบรับรองรูท: root.pem

รูปต่อไปนี้แสดงตัวอย่างเชนใบรับรอง

ขั้นตอนของเชนใบรับรอง: ใบรับรองข้อมูลประจำตัว ใบรับรองกลาง และใบรับรองรูท

กำลังยืนยันหัวเรื่องและผู้ออกใบรับรอง

ส่วนนี้อธิบายวิธีดูหัวเรื่องและผู้ออกใบรับรอง รวมถึงยืนยันว่าคุณมีกลุ่มใบรับรองที่ถูกต้อง

  1. เรียกใช้คำสั่ง OpenSSL ต่อไปนี้เพื่อรับ Subject และ Issuer สำหรับใบรับรองแต่ละใบในเชนจาก entity ถึง root และตรวจสอบว่าใบรับรองเหล่านั้นสร้างชุดใบรับรองที่ถูกต้อง
    openssl x509 -text -in certificate | grep -E '(Subject|Issuer):'
        

    โดย certificate คือชื่อของใบรับรอง

  2. ตรวจสอบว่าใบรับรองในเชนเป็นไปตามหลักเกณฑ์ต่อไปนี้
    • 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) ของใบรับรองที่มีช่องว่างที่ไม่ต้องการหรือสัญลักษณ์พิเศษ

  1. เรียกใช้คำสั่ง OpenSSL ต่อไปนี้เพื่อรับลำดับ hash สำหรับใบรับรองแต่ละใบในเชนจาก entity ถึง root และยืนยันว่าใบรับรองสร้างชุดใบรับรองที่ถูกต้อง
  2. openssl x509 -hash -issuer_hash -noout -in certificate
        

    โดย certificate คือชื่อของใบรับรอง

  3. ยืนยันว่าใบรับรองในเชนเป็นไปตามหลักเกณฑ์ต่อไปนี้
    • Subject ของใบรับรองแต่ละรายการตรงกับ Issuer ของใบรับรองก่อนหน้าในเชน (ยกเว้นใบรับรอง Entity)
    • Subject และ Issuer เหมือนกันสำหรับใบรับรองรูท

    หากใบรับรองในเชนเป็นไปตามหลักเกณฑ์เหล่านี้ จะถือว่ากลุ่มใบรับรองสมบูรณ์และถูกต้อง

    ตัวอย่างการตรวจสอบเชนใบรับรองผ่านลำดับแฮช

    ตัวอย่างต่อไปนี้คือเอาต์พุตของคำสั่ง 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
        

    ในตัวอย่างที่แสดงด้านบน โปรดสังเกตสิ่งต่อไปนี้:

    • subject hash ของใบรับรองกลางตรงกับ issuer hash ของใบรับรองเอนทิตี
    • subject hash ของใบรับรองรูทตรงกับ issuer hash ของใบรับรองผู้ออกใบรับรอง
    • subject และ issuer hash เหมือนกันในใบรับรองรูท

    จากตัวอย่างข้างต้น คุณยืนยันได้ว่ากลุ่มใบรับรองตัวอย่างถูกต้อง

กำลังยืนยันวันหมดอายุของใบรับรอง

ส่วนนี้จะอธิบายวิธีตรวจสอบว่าใบรับรองทั้งหมดในเชนหมดอายุหรือไม่ โดยใช้วิธีการต่อไปนี้

  • ดูวันที่เริ่มต้นและวันที่สิ้นสุดของใบรับรอง
  • ดูสถานะวันหมดอายุ

วันที่เริ่มต้นและวันที่สิ้นสุด

เรียกใช้คำสั่ง 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 บ่งบอกว่าใบรับรองยังไม่หมดอายุ