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

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

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

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

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

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

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

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

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

Дополнительную информацию об этих расширениях использования ключей см. в 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