stringtranslate.com

Запрос на подпись сертификата

В системах инфраструктуры открытых ключей (PKI) запрос на подпись сертификата ( CSR или запрос на сертификацию ) представляет собой сообщение, отправляемое заявителем в центр сертификации инфраструктуры открытых ключей (PKI) для подачи заявки на получение цифрового сертификата идентификации . CSR обычно содержит открытый ключ, для которого должен быть выдан сертификат, идентификационную информацию (такую ​​как доменное имя) и доказательство подлинности, включая защиту целостности (например, цифровую подпись). Наиболее распространенным форматом для CSR является спецификация PKCS #10 ; другие включают более эффективный формат сообщения запроса сертификата (CRMF) [1] и формат SPKAC (подписанный открытый ключ и вызов), генерируемый некоторыми веб-браузерами .

Процедура

Перед созданием CSR для сертификата X.509 заявитель сначала генерирует пару ключей , сохраняя закрытый ключ этой пары в секрете, например:

# https://www.openssl.org/docs/manmaster/man1/openssl-genrsa.html# "openssl genrsa" создает закрытый ключ RSA:$ openssl genrsa -out 2024_wikipedia.org.key

CSR содержит информацию, идентифицирующую заявителя (например, отличительное имя ), открытый ключ , выбранный заявителем, и, возможно, дополнительную информацию. При использовании формата PKCS #10 запрос должен быть подписан самостоятельно с использованием закрытого ключа заявителя, что обеспечивает доказательство владения закрытым ключом, но ограничивает использование этого формата ключами, которые могут быть использованы для (некоторой формы) подписи. CSR должен сопровождаться доказательством происхождения (т. е. доказательством личности заявителя), которое требуется центром сертификации, и центр сертификации может связаться с заявителем для получения дополнительной информации.

Типичная информация, требуемая в CSR (пример столбца из образца сертификата X.509 ). Обратите внимание, что часто существуют альтернативы для Distinguished Names (DN), предпочтительное значение указано.

В этом примере командной строки используются данные, указанные в таблице выше:

# https://www.openssl.org/docs/manmaster/man1/openssl-req.html# "openssl req" создает запрос на подпись:$ openssl req -sha512 -new -subj "/C=US/ST=Калифорния/L=Сан-Франциско/O=Wikimedia Foundation, Inc./CN=*.wikipedia.org" -key 2024_wikipedia.org.key -out 2024_wikipedia.org.csr

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

Структура CSR PKCS #10

Запрос на сертификацию в формате PKCS #10 состоит из трех основных частей: информация о запросе на сертификацию, идентификатор алгоритма подписи и цифровая подпись на информации о запросе на сертификацию. Первая часть содержит важную информацию, включая открытый ключ. Подпись запрашивающей стороны не позволяет субъекту запрашивать поддельный сертификат чужого открытого ключа. [3] Таким образом, закрытый ключ необходим для создания CSR PKCS #10, но он не является частью CSR. [4]

В CSR для персональных удостоверений личности и сертификатов подписи должен быть указан адрес электронной почты владельца удостоверения личности или название организации в случае удостоверения личности предприятия.

Первая часть, тип ASN.1 CertificationRequestInfo , состоит из номера версии (который равен 0 для всех известных версий, 1.0, 1.5 и 1.7 спецификаций), имени субъекта, открытого ключа (идентификатор алгоритма + битовая строка) и набора атрибутов, предоставляющих дополнительную информацию о субъекте сертификата. Атрибуты могут содержать требуемые расширения сертификата, пароль-вызов для ограничения отзыва, а также любую дополнительную информацию о субъекте сертификата, возможно, включая локальные или будущие типы. [3]

Пример CSR PKCS #10

Стандарт PKCS#10 определяет двоичный формат для кодирования CSR для использования с X.509 . Он выражен в ASN.1 . Вот пример того, как можно проверить его структуру ASN.1 с помощью OpenSSL :

openssl asn1parse -i -in ваш_запрос.p10

CSR может быть представлен как PKCS#10, закодированный в Base64 ; пример приведен ниже:

-----НАЧАЛО ЗАПРОСА СЕРТИФИКАТА----- MIICzDCCAbQCAQAwgYYxCzAJBgNVBAYTAkVOMQ0wCwYDVQQIDARub25lMQ0wCwYD VQQHDARub25lMRIwEAYDVQQKDAlXaWtpcGVkaWExDTALBgNVBAsMBG5vbmUxGDAW BgNVBAMMDyoud2lraXBlZGlhLm9yZzEcMBoGCSqGSIb3DQEJARYNbm9uZUBub25l LmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMP/U8RlcCD6E8AL PT8LLUR9ygyygPCaSmIEC8zXGJung3ykElXFRz/Jc/bu0hxCxi2YDz5IjxBBopB/ kieG83HsSmZZtR+drZIQ6vOsr/ucvpnB9z4XzKuabNGZ5ZiTSQ9L7Mx8FzvUTq5y /ArIuM+FBeuno/IV8 zvwAe/VRa8i0QjFXT9vBBp35aeatdnJ2ds50yKCsHHcjvtr 9/8zPVqqmhl2XFS3Qdqlsprzbgksom67OobJGjaV+fNHNQ0o/rzP//Pl3i7vvaEG 7Ff8tQhEwR9nJUR1T6Z7ln7S6cOr23YozgWVkEJ/dSr6LAopb+cZ88FzW5NszU6i 57HhA7ECAwEAAaAAMA0GCSqGSIb3DQEBBAUAA4IBAQBn8OCVOIx+n0AS6WbEmYDR SspR9xOCoOwYfamB+2Bpmt82R01zJ/kaqzUtZUjaGvQvAaz5lUwoMdaO0X7I5Xfl sllMFDaYoGD4Rru4s8gz2qG/QHWA8uPXzJVAj6X0olbIdLTEqTKsnBj4Zr1AJCNy /YcG4ouLJr140o26MhwBpoCRpPjAgdYMH60BYfnc4/DILxMVqR9xqK1s98d6Ob/+ 3wHFK+S7BRWrJQXcM8veAexXuk9lHQ+FgGfD0eSYGz0kyP26Qa2pLTwumjt+nBPl rfJxaLHwTQ/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: ОБЪЕКТ :countryName 23:d=5 hl=2 l= 2 prim: PRINTABLESTRING :EN 27:d=3 hl=2 l= 13 минусы: SET  29:d=4 hl=2 l= 11 минусы: ПОСЛЕДОВАТЕЛЬНОСТЬ  31:d=5 hl=2 l= 3 prim: ОБЪЕКТ :stateOrProvinceName 36:d=5 hl=2 l= 4 первичный: UTF8STRING :нет 42:d=3 hl=2 l= 13 минусы: SET  44:d=4 hl=2 l= 11 минусы: ПОСЛЕДОВАТЕЛЬНОСТЬ  46:d=5 hl=2 l= 3 prim: ОБЪЕКТ :localityName 51:d=5 hl=2 l= 4 первичный: UTF8STRING :нет 57:d=3 hl=2 l= 18 минус: SET  59:d=4 hl=2 l= 16 минусы: ПОСЛЕДОВАТЕЛЬНОСТЬ  61:d=5 hl=2 l= 3 prim: ОБЪЕКТ :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 prim: ОБЪЕКТ :organizationalUnitName 86:d=5 hl=2 l= 4 первичный: UTF8STRING :нет 92:d=3 hl=2 l= 24 минус: SET  94:d=4 hl=2 l= 22 минус: ПОСЛЕДОВАТЕЛЬНОСТЬ  96:d=5 hl=2 l= 3 prim: ОБЪЕКТ :commonName 101:d=5 hl=2 l= 15 prim: 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: ОБЪЕКТ :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: ОБЪЕКТ :rsaEncryption 165:d=4 hl=2 l= 0 первичный: NULL  167:d=3 hl=4 l= 271 prim: СТРОКА БИТОВ  442:d=2 hl=2 l= 0 минус: продолжение [ 0 ]  444:d=1 hl=2 l= 13 минусы: ПОСЛЕДОВАТЕЛЬНОСТЬ  446:d=2 hl=2 l= 9 prim: ОБЪЕКТ :md5WithRSAEncryption 457:d=2 hl=2 l= 0 первичный: NULL  459:d=1 hl=4 l= 257 prim: СТРОКА БИТОВ 

Это было создано путем указания кодировки base64 в команде , где PEM ( Privacy-Enhanced Mail ) — это кодировка ASN.1 Distinguished Encoding Rules в base64.openssl asn1parse -in your_request.p10 -inform PEM -i

Ссылки

  1. ^ «Формат сообщения запроса сертификата инфраструктуры открытых ключей Internet X.509 (CRMF)».
  2. ^ "Отличительные имена". Концепции и механизмы безопасности WebSphere MQ . IBM . 2019-11-05 . Получено 2020-01-16 .
  3. ^ ab RFC  2986 - PKCS #10: Спецификация синтаксиса запроса на сертификацию версии 1.7
  4. ^ Никос Маврояннопулос (09.01.2020). "Запросы сертификатов PKCS #10". GnuTLS . Получено 16.01.2020 .