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

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

این سند توضیح می‌دهد که چگونه قبل‌از بارگذاری گواهی در انبار کلید یا انبار اعتماد در 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 برای زنجیره گواهینامه نمونه‌ای است که حاوی سه گواهینامه است:

    گواهینامه نهاد

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