Создайте собственный модуль ASN.1 для пользовательского расширения в инструментах командной строки OpenSSL

Я пытаюсь создать PKI с помощью инструментов командной строки OpenSSL. Сертификаты конечных объектов должны иметь настраиваемое расширение с настраиваемым OID, в котором будет содержаться дополнительная информация. До сих пор мне удавалось получить пользовательское расширение с моим собственным OID в сертификатах, единственная проблема, с которой я сталкиваюсь, заключается в том, что это добавляет только одно поле. Мне нужен целый модуль ASN.1, как мы видим со стандартными расширениями, такими как Basic Constraints. Есть ли способ сделать это с помощью инструментов командной строки OpenSSL и файлов конфигурации?

В следующем документе показано, что можно указать собственные модули ASN.1, но я не могу найти способ передать это в CSR, а оттуда в сертификат. https://www.openssl.org/docs/man1.0.2/man3/ASN1_generate_v3.html

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
0
1 368
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Нашел. В конфигурации, используемой для создания сертификата или CSR, можно использовать информацию, указанную на указанной выше странице руководства. Модуль ASN.1 описан так, как указано, и можно указать OpenSSL написать расширение в соответствии с этим описанием, начав с ASN1:Type:NextSection. В разделах, описывающих каждый уровень модуля ASN.1, ключевое слово ASN1 больше не требуется.

...

[ usr_ext ]
# Extensions for client certificates (`man x509v3_config`).
keyUsage = digitalSignature
1.2.3.4.5.6.7.8.9 = ASN1:SEQUENCE:CustomExt
subjectKeyIdentifier = hash
authorityKeyIdentifier = keyid,issuer

[CustomExt]
wrappingSeq = SEQUENCE:ExtOid
key = FORMAT:HEX,BITSTRING:abcdef1234556789

[ExtOid]
oid = OID:1.3.101.110

Это заканчивается кодированием следующим образом

SEQUENCE
    OBJECT IDENTIFIER 1.2.3.4.5.6.7.8.9
    OCTET STRING
        SEQUENCE
            OBJECT IDENTIFIER 1.3.101.110
        BITSTRING 0xabcdef1234556789

Другие вопросы по теме