Вы просматриваете документацию по Apigee Edge.
Перейдите к документации по Apigee X. Информация
В этом документе рассказывается, как проверить цепочку сертификатов перед загрузкой сертификата в хранилище ключей или хранилище доверенных сертификатов в Apigee Edge. Для проверки цепочки сертификатов используется набор инструментов OpenSSL. Этот процесс можно выполнять в любой среде, где доступен OpenSSL.
Подготовка
Прежде чем выполнять описанные в этом документе действия, убедитесь, что вы понимаете следующие темы:
- Если вы не знакомы с цепочкой сертификатов, прочитайте статью Цепочка доверия.
- Если вы не знакомы с библиотекой OpenSSL, прочитайте статью OpenSSL.
- Если вы хотите использовать примеры командной строки из этого руководства, установите или обновите клиент OpenSSL до последней версии.
- Убедитесь, что сертификаты имеют формат 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 указывает, что срок действия сертификата ещё не истек.