Проверка назначения сертификата

Вы просматриваете документацию Apigee Edge .
Перейдите в документацию Apigee
X.info

В этом документе объясняется, как проверить назначение сертификата перед его загрузкой в ​​хранилище ключей или хранилище доверенных сертификатов. Процесс основан на использовании OpenSSL для проверки и применим в любой среде, где доступен OpenSSL.

Сертификаты TLS обычно выдаются с указанием одной или нескольких целей, для которых они могут быть использованы. Как правило, это делается для ограничения количества операций, для которых может быть использован открытый ключ, содержащийся в сертификате. Назначение сертификата указано в следующих расширениях сертификатов:

  • Использование ключей
  • Расширенное использование ключей

Использование ключей

Расширение, определяющее назначение ключа (например, шифрование, подпись или подписание сертификата), содержащегося в сертификате. Если открытый ключ используется для аутентификации субъекта, то расширение сертификата должно содержать параметр «Цифровая подпись» (Digital signature ).

Для сертификата TLS, созданного с помощью центра сертификации (CA), доступны следующие расширения использования ключей:

  • Цифровая подпись
  • Неотказуемость
  • Ключевое шифрование
  • Шифрование данных
  • Ключевое соглашение
  • Подписание сертификата
  • Подписание контракта с CRL
  • Зашифровать только
  • Расшифровать только

Для получения дополнительной информации об этих ключевых расширениях использования см. RFC5280, Использование клавиш .

Расширенное использование ключей

Это расширение указывает на одну или несколько целей, для которых может использоваться сертифицированный открытый ключ, в дополнение к основным целям, указанным в расширении использования ключа, или вместо них. Как правило, это расширение будет отображаться только в сертификатах конечных пользователей.

Ниже перечислены некоторые распространенные расширения для использования клавиш:

  • TLS Web server authentication
  • TLS Web client authentication
  • anyExtendedKeyUsage

Расширенный ключ может быть как критическим , так и некритическим .

  • Если расширение является критически важным , сертификат должен использоваться только для указанной цели или целей. Использование сертификата для другой цели является нарушением политики центра сертификации.
  • Если расширение не является критическим , это указывает на то, что предполагаемое назначение ключа носит информационный характер и не подразумевает, что центр сертификации ограничивает использование ключа указанной целью. Однако приложения, использующие сертификаты, могут потребовать указания конкретной цели для того, чтобы сертификат был принят.

Если в сертификате поля использования ключа и расширенного использования ключа указаны как критически важные, то оба поля должны обрабатываться независимо, и сертификат может использоваться только для цели, удовлетворяющей обоим значениям использования ключа. Однако, если нет цели, которая могла бы удовлетворить обоим значениям использования ключа, то этот сертификат не должен использоваться ни для каких целей.

При получении сертификата убедитесь, что в нем правильно определено использование ключа, соответствующее требованиям к клиентским или серверным сертификатам, без которых рукопожатие TLS завершится неудачей.

Цель Использование ключей

(обязательный)

Расширенное использование ключей

(необязательный)

Сертификат сущности сервера, используемый в хранилище ключей Apigee Edge виртуального хоста.
  • Цифровая подпись
  • Шифрование ключа или согласование ключа
Аутентификация веб-сервера по протоколу TLS
Сертификат клиента, используемый в хранилище доверенных сертификатов Apigee Edge виртуального хоста.
  • Цифровая подпись или соглашение о ключе
Аутентификация веб-клиента по протоколу TLS
Сертификат сущности сервера, используемый в хранилище доверенных сертификатов Apigee Edge целевого сервера.
  • Цифровая подпись
  • Шифрование ключа или согласование ключа
Аутентификация веб-сервера по протоколу TLS
Сертификат клиентского объекта, используемый в хранилище ключей Apigee Edge целевого сервера.
  • Цифровая подпись или соглашение о ключе
Аутентификация веб-клиента по протоколу TLS
Промежуточные и корневые сертификаты
  • Подпись на сертификате
  • Подпись в списке аннулированных сертификатов (CRL).

Прежде чем начать

Прежде чем приступить к выполнению действий, описанных в этом документе, убедитесь, что вы понимаете следующие темы:

  • Если вы не знакомы с цепочкой сертификатов, прочтите статью «Цепочка доверия» .
  • Если вы не знакомы с библиотекой OpenSSL, прочтите статью об OpenSSL.
  • Если вы хотите узнать больше о расширениях использования клавиш и расширенном использовании клавиш, прочтите RFC5280 .
  • Если вы хотите использовать примеры командной строки из этого руководства, установите или обновите клиент OpenSSL до последней версии.
  • Убедитесь, что сертификаты имеют формат PEM, а если нет, преобразуйте сертификаты в формат PEM .

Подтвердите назначение сертификата.

В этом разделе описаны шаги, используемые для подтверждения назначения сертификата.

  1. Войдите на сервер, где установлен OpenSSL.
  2. Чтобы получить информацию об использовании ключа сертификата, выполните следующую команду OpenSSL:
    openssl x509 -noout -ext keyUsage < certificate

    Где certificate — это имя сертификата.

    Пример выходных данных

    openssl x509 -noout -ext keyUsage < entity.pem
    X509v3 Key Usage: critical
        Digital Signature, Key Encipherment
    
    openssl x509 -noout -ext keyUsage < intermediate.pem
    X509v3 Key Usage: critical
        Certificate Sign, CRL Sign
  3. Если использование клавиши является обязательным, то она будет отнесена к критически важным следующим образом:
    openssl x509 -noout -ext keyUsage < intermediate.pem
    X509v3 Key Usage: critical
        Certificate Sign, CRL Sign
  4. Выполните следующую команду, чтобы получить информацию об использовании расширенного ключа для сертификата. Если использование расширенного ключа не определено как критическое, то это рекомендация, а не обязательное требование.
    openssl x509 -noout -ext extendedKeyUsage < certificate

    Где certificate — это имя сертификата.

    Пример выходных данных

    openssl x509 -noout -ext extendedKeyUsage < entity.pem
    X509v3 Extended Key Usage:
        TLS Web Server Authentication, TLS Web Client Authentication
    
    openssl x509 -noout -ext extendedKeyUsage < intermediate.pem
    X509v3 Extended Key Usage:
        TLS Web Server Authentication, TLS Web Client Authentication