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

شما در حال مشاهده مستندات Apigee Edge هستید.
به مستندات Apigee X مراجعه کنید .
اطلاعات

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