В инфраструктуре открытых ключей (PKI) системах запрос на подпись сертификата (также CSR или запрос сертификации ) является сообщение , посланное от заявителя в регистрирующий орган по инфраструктуре открытого ключа для того , чтобы подать заявление на получение сертификата цифровой идентификации . Обычно он содержит открытый ключ, для которого должен быть выдан сертификат, идентифицирующую информацию (например, имя домена) и защиту целостности (например, цифровую подпись). Наиболее распространенный формат для CSR - это спецификация PKCS # 10; другой - подписанный открытый ключ и формат Challenge SPKAC , генерируемый некоторыми веб-браузерами..
Процедура
Перед созданием CSR кандидат сначала генерирует пару ключей , сохраняя секретный ключ в секрете. CSR содержит информацию, идентифицирующую заявителя (например, отличительное имя в случае сертификата X.509 ), которая должна быть подписана с использованием закрытого ключа заявителя . CSR также содержит открытый ключ, выбранный заявителем. CSR может сопровождаться другими учетными данными или доказательствами личности, требуемыми центром сертификации, и центр сертификации может связаться с заявителем для получения дополнительной информации.
Типичная информация, требуемая в CSR (образец столбца из образца сертификата X.509 ). Обратите внимание, что часто существуют альтернативы отличительным именам (DN), предпочтительное значение указано в списке.
DN [1] | Информация | Описание | Образец |
---|---|---|---|
CN | Распространенное имя | Это полное доменное имя, которое вы хотите защитить | * .wikipedia.org |
O | Название организации | Обычно юридическое название компании или юридического лица и должно включать любые суффиксы, такие как Ltd., Inc. или Corp. | Фонд Викимедиа, Inc. |
OU | Организационная единица | Название подразделения / подразделения внутренней организации | ЭТО |
L | Местонахождение | Город, город, село и т. Д. Название | Сан-Франциско |
ST | Состояние | Провинция, регион, округ или штат. Это не должно быть сокращено (например, Западный Суссекс, Нормандия, Нью-Джерси). | Калифорния |
C | Страна | Два-буквенный код ISO для страны , где находится ваша организация | нас |
EMAIL | Адрес электронной почты | Контактное лицо организации, обычно администратора сертификатов или ИТ-отдела. |
Если запрос будет успешным, центр сертификации отправит обратно сертификат идентичности, который был подписан цифровой подписью с использованием закрытого ключа центра сертификации.
Состав
Запрос на сертификацию состоит из трех основных частей: информации запроса сертификации, идентификатора алгоритма подписи и цифровой подписи информации запроса на сертификацию. Первая часть содержит важную информацию, включая открытый ключ. Подпись запрашивающей стороны не позволяет объекту запрашивать поддельный сертификат чьего-либо открытого ключа. [2] Таким образом, закрытый ключ необходим для создания CSR, но не является его частью. [3]
CSR для сертификатов личного идентификатора и сертификатов подписи должен содержать адрес электронной почты держателя идентификатора или название организации в случае идентификатора предприятия.
Первая часть, CertificationRequestInfo типа ASN.1 , состоит из номера версии (который равен 0 для всех известных версий 1.0, 1.5 и 1.7 спецификаций), имени субъекта, открытого ключа (идентификатор алгоритма + битовая строка), и набор атрибутов, предоставляющих дополнительную информацию о субъекте сертификата. Атрибуты могут содержать требуемые расширения сертификата, пароль запроса для ограничения отзыва, а также любую дополнительную информацию о субъекте сертификата, возможно, включая локальные или будущие типы. [2]
Пример
PKCS # 10 стандартные определяет двоичный формат для кодирования CSRs для использования с X.509 . Он выражен в ASN.1 . Вот пример того, как вы можете изучить его структуру ASN.1 с помощью OpenSSL :
openssl asn1parse -i -in your_request
CSR может быть представлен как PKCS # 10 в кодировке Base64 ; пример которого приведен ниже:
----- НАЧАТЬ ЗАПРОС СЕРТИФИКАТА -----MIICzDCCAbQCAQAwgYYxCzAJBgNVBAYTAkVOMQ0wCwYDVQQQIDARub25lMQ0wCwYDVQQHDARub25lMRIwEAYDVQQKDAlXaWtpcGVkaWExDTALBgNVBAsMBG5vbmUxGDAWBgNVBAMMDyoud2lraXBlZGlhLm9yZzEcMBoGCSqGSIb3DQEJARYNbm9uZUBub25lLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMP / U8RlcCD6E8ALPT8LLUR9ygyygPCaSmIEC8zXGJung3ykElXFRz / Jc / bu0hxCxi2YDz5IjxBBOpB /kieG83HsSmZZtR + drZIQ6vOsr / ucvpnB9z4XzKuabNGZ5ZiTSQ9L7Mx8FzvUTq5y/ ArIuM + FBeuno / IV8zvwAe / VRa8i0QjFXT9vBBp35aeatdnJ2ds50yKCsHHcjvtr9 / 8zPVqqmhl2XFS3Qdqlsprzbgksom67OobJGjaV + fNHNQ0o / rzP // Pl3i7vvaEG7Ff8tQhEwR9nJUR1T6Z7ln7S6cOr23YozgWVkEJ / dSr6LAopb + cZ88FzW5NszU6i57HhA7ECAwEAAaAAMA0GCSqGSIb3DQEBBAUAA4IBAQBn8OCVOIx + n0AS6WbEmYDRSspR9xOCoOwYfamB + 2Bpmt82R01zJ / kaqzUtZUjaGvQvAaz5lUwoMdaO0X7I5XflsllMFDaYoGD4Rru4s8gz2qG / QHWA8uPXzJVAj6X0olbIdLTEqTKsnBj4Zr1AJCNy/ YcG4ouLJr140o26MhwBpoCRpPjAgdYMH60BYfnc4 / DILxMVqR9xqK1s98d6Ob / +3wHFK + S7BRWrJQXcM8veAexXuk9lHQ + FgGfD0eSYGz0kyP26Qa2pLTwumjt + nBPlrfJxaLHwTQ / 1988G0H35ED0f9Md5fzoKi5evU1wG5WRxdEUPyt3QUXxdQ69i0C + 7----- КОНЕЦ ЗАПРОСА СЕРТИФИКАТА -----
Структура ASN.1 вышеупомянутого запроса на подпись сертификата (проанализированная openssl) выглядит следующим образом, где первое число - это смещение в байтах, d = глубина, hl = длина заголовка текущего типа, l = длина содержимого:
0: d = 0 hl = 4 l = 716 минусы: ПОСЛЕДОВАТЕЛЬНОСТЬ 4: d = 1 hl = 4 l = 436 минусы: ПОСЛЕДОВАТЕЛЬНОСТЬ 8: d = 2 hl = 2 l = 1 прим .: ЦЕЛОЕ: 00 11: d = 2 hl = 3 l = 134 минусы: ПОСЛЕДОВАТЕЛЬНОСТЬ 14: d = 3 hl = 2 l = 11 минусов: SET 16: d = 4 hl = 2 l = 9 минусы: ПОСЛЕДОВАТЕЛЬНОСТЬ 18: d = 5 hl = 2 l = 3 prim: OBJECT: countryName 23: d = 5 hl = 2 l = 2 prim: ПЕЧАТЬ: EN 27: d = 3 hl = 2 l = 13 минусов: SET 29: d = 4 hl = 2 l = 11 минусы: ПОСЛЕДОВАТЕЛЬНОСТЬ 31: d = 5 hl = 2 l = 3 prim: OBJECT: stateOrProvinceName 36: d = 5 hl = 2 l = 4 prim: UTF8STRING: нет 42: d = 3 hl = 2 l = 13 минусов: SET 44: d = 4 hl = 2 l = 11 минусы: ПОСЛЕДОВАТЕЛЬНОСТЬ 46: d = 5 hl = 2 l = 3 prim: OBJECT: localityName 51: d = 5 hl = 2 l = 4 prim: UTF8STRING: нет 57: d = 3 hl = 2 l = 18 мин: НАБОР 59: d = 4 hl = 2 l = 16 минусы: ПОСЛЕДОВАТЕЛЬНОСТЬ 61: d = 5 hl = 2 l = 3 prim: OBJECT: organizationName 66: d = 5 hl = 2 l = 9 prim: UTF8STRING: Википедия 77: d = 3 hl = 2 l = 13 минусов: SET 79: d = 4 hl = 2 l = 11 минусы: ПОСЛЕДОВАТЕЛЬНОСТЬ 81: d = 5 hl = 2 l = 3 прим .: ОБЪЕКТ: имя организационной единицы 86: d = 5 hl = 2 l = 4 prim: UTF8STRING: нет 92: d = 3 hl = 2 l = 24 мин: НАБОР 94: d = 4 hl = 2 l = 22 минусы: ПОСЛЕДОВАТЕЛЬНОСТЬ 96: d = 5 hl = 2 l = 3 prim: OBJECT: commonName 101: d = 5 hl = 2 l = 15 прим .: UTF8STRING: *. Wikipedia.org 118: d = 3 hl = 2 l = 28 минусов: SET 120: d = 4 hl = 2 l = 26 минусы: ПОСЛЕДОВАТЕЛЬНОСТЬ 122: d = 5 hl = 2 l = 9 prim: OBJECT: emailAddress 133: d = 5 hl = 2 l = 13 прим .: IA5STRING: [email protected] 148: d = 2 hl = 4 l = 290 минусы: ПОСЛЕДОВАТЕЛЬНОСТЬ 152: d = 3 hl = 2 l = 13 минусы: ПОСЛЕДОВАТЕЛЬНОСТЬ 154: d = 4 hl = 2 l = 9 prim: OBJECT: rsaEncryption 165: d = 4 hl = 2 l = 0 прим .: NULL 167: d = 3 hl = 4 l = 271 прим .: СТРОКА БИТОВ 442: d = 2 hl = 2 l = 0 cons: cont [0] 444: d = 1 hl = 2 l = 13 минусы: ПОСЛЕДОВАТЕЛЬНОСТЬ 446: d = 2 hl = 2 l = 9 prim: OBJECT: md5WithRSAEncryption 457: d = 2 hl = 2 l = 0 прим .: NULL 459: d = 1 hl = 4 l = 257 prim: BIT STRING
Это было сгенерировано путем передачи кодировки base64 в команду, где PEM означает Privacy-Enhanced Mail и описывает кодировку отличительных правил кодирования ASN.1 в base64.openssl asn1parse -in your_request -inform PEM -i
Смотрите также
Рекомендации
- ^ "Выдающиеся имена" . Концепции и механизмы безопасности WebSphere MQ . IBM . 2019-11-05 . Проверено 16 января 2020 .
- ^ а б RFC 2986 - PKCS # 10: спецификация синтаксиса запроса на сертификацию версии 1.7
- ^ Никос Маврогианнопулос (09.01.2020). «Запросы сертификатов PKCS # 10» . GnuTLS . Проверено 16 января 2020 .