شما در حال مشاهده مستندات Apigee Edge هستید.
به مستندات Apigee X مراجعه کنید . اطلاعات
این سند نحوه اعتبارسنجی زنجیره گواهی را قبل از آپلود گواهی در یک فروشگاه کلید یا یک فروشگاه اعتماد در Apigee Edge توضیح میدهد. این فرآیند برای اعتبارسنجی زنجیره گواهی به جعبه ابزار OpenSSL متکی است و در هر محیطی که OpenSSL در دسترس باشد، قابل اجرا است.
قبل از اینکه شروع کنی
قبل از استفاده از مراحل این سند، مطمئن شوید که مباحث زیر را درک کردهاید:
- اگر با زنجیره گواهی آشنا نیستید، زنجیره اعتماد را بخوانید.
- اگر با کتابخانه OpenSSL آشنا نیستید، OpenSSL را مطالعه کنید.
- اگر میخواهید از مثالهای خط فرمان این راهنما استفاده کنید، آخرین نسخه کلاینت OpenSSL را نصب یا بهروزرسانی کنید.
- مطمئن شوید که گواهیها با فرمت PEM هستند. اگر گواهیها با فرمت PEM نیستند، از دستورالعملهای موجود در بخش «تبدیل گواهیها به فرمت پشتیبانیشده» برای تبدیل آنها به فرمت PEM استفاده کنید.
اعتبارسنجی موضوع گواهی و صادرکننده برای کل زنجیره
برای اعتبارسنجی زنجیره گواهی با استفاده از دستورات OpenSSL، مراحل شرح داده شده در بخشهای زیر را انجام دهید:
- تقسیم زنجیره گواهی
- تأیید موضوع و صادرکننده گواهی
- تأیید موضوع گواهی و هش صادرکننده
- تأیید انقضای گواهی
تقسیم زنجیره گواهی
قبل از تأیید اعتبار گواهی، باید زنجیره گواهی را با استفاده از مراحل زیر به گواهیهای جداگانه تقسیم کنید:
- به سروری که کلاینت OpenSSL در آن وجود دارد، وارد شوید.
- زنجیره گواهی را به گواهیهای زیر تقسیم کنید (اگر قبلاً انجام نشده است):
- گواهی موجودیت:
entity.pem - گواهی میانی:
intermediate.pem - گواهی ریشه:
root.pem
شکل زیر یک نمونه زنجیره گواهی را نشان میدهد:

تأیید موضوع و صادرکننده گواهی
این بخش نحوه دریافت موضوع و صادرکننده گواهینامهها و تأیید صحت زنجیره گواهینامههای شما را شرح میدهد.
- دستور OpenSSL زیر را اجرا کنید تا
SubjectوIssuerهر گواهی در زنجیره ازentityتاrootدریافت کنید و تأیید کنید که آنها یک زنجیره گواهی مناسب را تشکیل میدهند:openssl x509 -text -in certificate | grep -E '(Subject|Issuer):'که در آن certificate نام گواهینامه است.
- تأیید کنید که گواهینامههای موجود در زنجیره، دستورالعملهای زیر را رعایت میکنند:
-
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) گواهی که دارای فضای ناخواسته یا کاراکترهای خاص است، کمک کند.
- دستور OpenSSL زیر را اجرا کنید تا توالی
hashهر گواهی در زنجیره ازentityتاrootدریافت کنید و تأیید کنید که آنها یک زنجیره گواهی مناسب را تشکیل میدهند. - تأیید کنید که گواهینامههای موجود در زنجیره، دستورالعملهای زیر را رعایت میکنند:
-
Subjectهر گواهی باIssuerگواهی قبلی در زنجیره (به جز گواهیEntity) مطابقت دارد. -
SubjectوIssuerبرای گواهی ریشه یکسان هستند. -
subject hashگواهی میانی باissuer hashگواهی موجودیت مطابقت دارد. -
subject hashگواهی ریشه باissuer hashصادرکننده گواهی مطابقت دارد. - هش
subjectوissuer hashدر گواهی ریشه یکسان هستند.
openssl x509 -hash -issuer_hash -noout -in certificate
که در آن certificate نام گواهینامه است.
اگر گواهینامههای موجود در زنجیره از این دستورالعملها پیروی کنند، زنجیره گواهینامه کامل و معتبر تلقی میشود.
نمونه اعتبارسنجی زنجیره گواهی از طریق توالی هش
مثال زیر خروجی دستورات 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
در مثال بالا، به موارد زیر توجه کنید:
از مثال بالا، میتوانید تأیید کنید که زنجیره گواهی نمونه معتبر است.
تأیید انقضای گواهی
این بخش توضیح میدهد که چگونه با استفاده از روشهای زیر، تأیید کنید که آیا تمام گواهیهای موجود در زنجیره منقضی شدهاند یا خیر:
- تاریخ شروع و پایان گواهینامه را دریافت کنید.
- وضعیت انقضا را دریافت کنید.
تاریخ شروع و پایان
دستور 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 نشان میدهد که گواهی هنوز منقضی نشده است.