Вы просматриваете документацию 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
означает, что срок действия сертификата еще не истек.