При попытке сгенерировать csr через openssl в Windows я получаю сообщение об ошибке «невозможно найти 'distinguished_name' в конфигурации». Раньше я делал это без проблем, но не могу понять, почему он не делает этого сейчас.
Мой файл конфигурации (request.txt):
[req]
default_bits = 2048
prompt = no
default_md = sha384
req_extensions = req_ext
distinguished_name = req_distinguished_name
[req_distinguished_name]
countryName = US
stateOrProvinceName = Nevada
organizationName = OrgName
organizationalUnitName = DepName
commonName = <snip-fqdn>
emailAddress = <snip-email>
[req_ext]
subjectAltName = @alt_names
[alt_names]
DNS.1 = <snip-fqdn1>
DNS.2 = <snip-fqdn2>
IP.1 = <snip-ip>
Команда, которую я использую для создания csr (OpenSSL — это псевдоним PowerShell для openssl.exe):
OpenSSL req -newkey rsa:2048 -keyout key.pem -nodes -out request.csr -config request.txt
Это приводит к ошибке, указывающей на то, что в конфигурации невозможно найти отличительное_имя:
req: Error on line 1 of config file "H:\path\to\request.txt"
Generating a RSA private key
................+++++
..........+++++
writing new private key to 'H:\path\to\key.pem'
-----
unable to find 'distinguished_name' in config
problems making Certificate Request
3252:error:0E06D06A:configuration file routines:NCONF_get_string:no conf or environment variable:crypto\conf\conf_lib.c:270:
Отличительное_имя определено в конфигурации, поэтому я не уверен, о чем здесь openssl. Я действительно в недоумении с этим. Есть идеи?





Похоже, это ваша настоящая ошибка:
req: Error on line 1 of config file "H:\path\to\request.txt"
Это может быть вызвано странным символом или пробелом в первой строке файла requests.txt.
Я использовал Out-File в PowerShell для создания файла конфигурации. Очевидно, Out-File любит добавлять в ваши текстовые файлы кучу тарабарщины, которая, конечно, не видна в Блокноте. Я изменил способ создания файла конфигурации, и теперь все работает нормально.