Я пытаюсь создать запрос на подпись сертификата с темой UTF-8.
$ openssl req -utf8 -nodes -newkey rsa:2048 -keyout my.private_key.pem -out my.csr.pem -text
Generating a 2048 bit RSA private key
......................................................................................................................................................................+++
......+++
writing new private key to 'my.private_key.pem'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [PL]:
State or Province Name (full name) []:Zażółć gęślą jaźń
problems making Certificate Request
12376:error:0D07A07C:asn1 encoding routines:ASN1_mbstring_ncopy:illegal characters:a_mbstr.c:162:
Кодировка терминала - UTF-8, у меня возникает та же проблема, когда я использую тему командной строки (...) -subj /C=PL/ST=zażółć\ gęślą\ jaźń/O=my-company/CN=ThisIsMeForSure
Когда я пропускаю переключатель -utf8
, CSR генерируется со всеми символами, отличными от ascii, замененными шестнадцатеричной нотацией (например, ó
становится \xC3\xB3
). Такой CSR не может быть правильно прочитан с помощью php (openss_x509_parse
) - исходный ó
читается как четыре байта, представляющие два странных символа...
Что я делаю не так?
openssl req
без пользовательского файла конфигурации означает, что имя сервера будет в файлеCN
. Эта практика осуждается как IETF, так и форумами CA/B. Вместо этого вы должны убедиться, что имена серверов (и IP-адреса) находятся в файлеSAN
. См., например, Как создать самоподписанный сертификат с помощью openssl? (ответ используется как для запросов подписи, так и для самоподписанных сертификаты). Иstring_mask = utf8only
устанавливается в файле conf. - person jww   schedule 15.04.2015