OpenSSL: как создать сертификат с пустым DN субъекта?

возможно ли создать сертификат запроса сертификата PKCS#10 / X. 509 с идентифицирующей информацией только в атрибуте/расширении альтернативного имени субъекта? По словам X. 509 4.1.2.6 Тема, субъект может быть пустым для сертификата, субъект которого не является CA, пока subjectAltName имеет решающее значение.

но когда я использую этот файл конфигурации с пустым разделом distinguished_name:

# request.config
[ req ]
distinguished_name = req_distinguished_name
req_extensions = v3_req
prompt = no

[ req_distinguished_name ]

[ v3_req ]
keyUsage = nonRepudiation, digitalSignature, keyEncipherment
subjectAltName=critical,email:certtest@example.com

и команды

openssl genrsa 1024 > key.pem
openssl req -new -key key.pem -out req.pem -config request.config

OpenSSL жалуется:

error, no objects specified in config file
problems making Certificate Request
24
задан yonran
06.01.2023 1:37 Количество просмотров материала 2768
Распечатать страницу

5 ответов

это сработало для меня:

test-no-cn.cnf файл

[req] 
default_bits       = 4096
encrypt_key        = no
default_md         = sha256
distinguished_name = req_distinguished_name
req_extensions = v3_req

[ req_distinguished_name ]

[ v3_req ]
keyUsage = nonRepudiation, digitalSignature, keyEncipherment
subjectAltName=critical,email:certtest@example.com,URI:http://example.com/,IP:192.168.7.1,dirName:dir_sect

[dir_sect]
C=DK
O=My Example Organization
OU=My Example Unit
CN=My Example Name

генерировать CSR

openssl req -new -newkey rsa:4096 -nodes -config test-no-cn.cnf -subj "/" -outform pem -out test-no-cn.csr -keyout test-no-cn.key

знак ЦСР

openssl x509 -req -days 365 -in test-no-cn.csr -signkey test-no-cn.key -out test-no-cn.crt -outform der -extensions v3_req -extfile test-no-cn.cnf

посмотреть полученный сертификат

openssl x509 -inform der -in test-no-cn.crt -noout -text
9
отвечен bpawlak 2023-01-07 09:25

Я также столкнулся с этой ошибкой "не указаны объекты". Он показывал подсказку, как это для различных полей:

US []:

и я просто нажимал enter, потому что я уже установил эти значения в.файл cnf. Оказывается, мне нужно было снова ввести все значения, и тогда это сработало.

7
отвечен Oran Dennison 2023-01-07 11:42

попробуйте "commonName = optional" в разделах политики в файле конфигурации openssl.

2
отвечен Artem 2023-01-07 13:59

Кажется, вы вводите любое одно значение из группы "distinguished_name" с клавиатуры, и все работает нормально...Я имею в виду, что вам не нужно вводить другие значения и можете использовать их по умолчанию(как упоминалось в openssl.файл conf ) что сказал

[ req ]
...
distinguished_name = req_distinguished_name
prompt = no
...

Should work fine.
1
отвечен hardeep 2023-01-07 16:16

проблема prompt = no в исходном конфиге. Что делает openssl req предположим, вы собираетесь указать тему записи в файле конфигурации и хиты предварительная проверка req.c.

есть обходной путь: удалить prompt = no и вместо того, чтобы добавить -subj / на openssl req командная строка. Вот пример сценария, который производит и CSR и подписанный сертификат:

cat > openssl.cnf <<EOF
[ req ]
distinguished_name = req_distinguished_name
req_extensions = v3_req

[ req_distinguished_name ]

[ v3_req ]
keyUsage = nonRepudiation, digitalSignature, keyEncipherment
subjectAltName=critical,email:certtest@example.com
EOF
openssl req -newkey rsa:2048 -config openssl.cnf -nodes -new -subj "/" \
  -out req.csr
openssl req -newkey rsa:2048 -config openssl.cnf -nodes -new -subj "/" \
  -x509 -out cert.crt
1
отвечен jsha 2023-01-07 18:33

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх