اعتبار سنجی زنجیره گواهی

شما در حال مشاهده اسناد 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

شکل زیر نمونه ای از زنجیره گواهی را نشان می دهد:

certificate chain flow: Identity certificate to Intermediate certificate to Root certificate

تأیید موضوع گواهی و صادرکننده

این بخش نحوه دریافت موضوع و صادرکننده گواهینامه ها و تأیید اینکه شما یک زنجیره گواهی معتبر دارید را توضیح می دهد.

  1. دستور OpenSSL زیر را اجرا کنید تا Subject و Issuer برای هر گواهی در زنجیره از entity به root دریافت کنید و بررسی کنید که آنها یک زنجیره گواهی مناسب را تشکیل می دهند:
    openssl x509 -text -in certificate | grep -E '(Subject|Issuer):'
        

    جایی که certificate نام گواهی است.

  2. بررسی کنید که گواهی‌های موجود در زنجیره از دستورالعمل‌های زیر پیروی می‌کنند:
    • Subject هر گواهی با Issuer گواهی قبلی در زنجیره مطابقت دارد (به جز گواهی Entity ).
    • Subject و Issuer برای گواهی ریشه یکسان هستند.

    اگر گواهینامه های موجود در زنجیره از این دستورالعمل ها پیروی کنند، زنجیره گواهی کامل و معتبر تلقی می شود.

    نمونه اعتبار سنجی زنجیره گواهی

    مثال زیر خروجی دستورات OpenSSL برای یک زنجیره گواهی نمونه حاوی سه گواهی است:

    گواهی نهاد

    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 برای یک زنجیره گواهی نمونه حاوی سه گواهی است:

    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 نام گواهی است.

نمونه ای از اعتبار سنجی انقضای گواهی از طریق گزینه 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 نشان می دهد که گواهی هنوز منقضی نشده است.