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

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

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