Вы просматриваете документацию Apigee Edge .
Перейдите в документацию Apigee X.info
В этом документе объясняется, как проверить цепочку сертификатов перед загрузкой сертификата в хранилище ключей или хранилище доверенных сертификатов в 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 указывает на то, что срок действия сертификата еще не истек.