В криптографии сертификат открытого ключа представляет собой документ, в котором используется цифровая подпись для связывания открытого ключа с физическим субъектом. Такие сертификаты часто обобщенно называют цифровыми сертификатами или цифровыми сертификатами клиента. Наиболее распространенный стандарт цифровых сертификатов - X.509.
В криптографии с открытым ключом каждый сертификат имеет два связанных ключа: открытый ключ и личный ключ. Открытый ключ добавляется в сертификат X.509 и всегда доступен вместе с сертификатом. Личный ключ хранится в надежном месте и никогда не передается. В целях мобильности оба ключа (и сертификат) могут включаться в один зашифрованный и защищенный паролем формат, называемый PKCS#12.
Для проверки подлинности сертификата он подписывается другим сертификатом, которым владеет сертификатная компания (CA). Подписывающий сертификат создается и хранится в надежном месте компанией - владельцем защищенного приложения или специализированной сертификатной компанией, такой как Verisign.
Когда веб-приложение требует цифровые сертификаты, администратор обычно создает по отдельному сертификату для каждого зарегистрированного пользователя. Администратор подписывает каждый сертификат подписывающим сертификатом. Эти сертификаты вместе с открытым и личным ключами передаются пользователям. Часто эти ключи передаются в формате PKCS#12. Пользователи импортируют сертификаты в свои браузеры. Когда сервер запрашивает у браузера сертификат, тот передает его серверу.
Во время выполнения импорта сертификатов для веб-приложений, включите переключатель, разрешающий экспорт ключей. Это позволяет экспортировать сертификат в файл в формате PKCS#12 для использования в других программах.
Для тестирования производительности не следует использовать сертификаты реальных пользователей. Используйте отдельные тестовые сертификаты, не связанные с реальными пользователями.
Собственные сертификаты используются, когда для установления подлинности сертификата не требуется чье-либо поручительство. Такие сертификаты наиболее просты для создания и использования. Однако обычно для представления конкретного пользователя используется подписанный сертификат.
Подписанные сертификаты используются, когда необходимо создать и выдать сертификат одному и только одному пользователю. Подписанные сертификаты подписываются подписывающим сертификатом от сертификатной компании.
Сертификаты от сертификатной компании представляют собой собственные сертификаты, используемые для подписания (сертификации) других сертификатов.
Неподписанные сертификаты - это сертификаты не являющиеся собственными сертификатами и не подписанные сертификатом от сертификатной компании. В большинстве веб-приложений неподписанные сертификаты не используются.
При создании собственного или подписанного сертификата (включая сертификаты от сертификатной компании) можно указать субъект. Субъект сертификата представляет собой набор атрибутов отличительного имени X.500, добавляемых в сертификат. Субъект позволяет получателю сертификата узнать больше о владельце сертификата. Субъект описывает владельца сертификата, но он необязательно уникален. Субъекты следует рассматривать как записи в телефонной книге, где может быть несколько записей для Павла Широкова, но эти записи относятся к разным лицам.
Субъект может содержать и другие типы идентифицирующих данных. Обычно субъект включает следующую информацию:
Атрибут | Пример |
---|---|
ОБЩЕЕ ИМЯ (CN) | CN=Павел Широков |
ОРГАНИЗАЦИЯ (O) | O=Корпорация IBM |
ПОДРАЗДЕЛЕНИЕ (OU) | OU=Группа разработки программного обеспечения IBM |
СТРАНА (C) | C=RU |
МЕСТОНАХОЖДЕНИЕ (L) | L=Москва |
РЕГИОН (ST) | ST=Москва |
АДРЕС ЭЛЕКТРОННОЙ ПОЧТЫ (emailAddress) | emailAddress=agrawal@abc.ibm.com |
Эту информацию можно ввести на одной строке, используя косую черту в качестве разделителя.
Например, приведенный выше субъект можно ввести следующим образом:
/CN=Павел Широков/O=Корпорация IBM/OU=Группа разработки программного обеспечения IBM/C=RU/L=Москва/ST=Москва/emailAddress=agrawal@abc.ibm.com
Дополнительная информация о применении поставляемой вместе с продуктом утилиты командной строки для создания сертификатов приведена в разделе Создание хранилища цифровых сертификатов.