When attempting to generate a csr via openssl on Windows, I get and error stating "unable to find 'distinguished_name' in config". I have done this previously without issue, but can't seem to figure out why it isn't doing the the thing now.
My config file (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>The command I am using to generate the csr (OpenSSL is a PowerShell alias to openssl.exe):
OpenSSL req -newkey rsa:2048 -keyout key.pem -nodes -out request.csr -config request.txtThis results in an error stating the distinguished_name cannot be found in the config:
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:The distinguished_name is defined in the config, so I am unsure what openssl is on about here. I am truly at a loss with this one. Any ideas?
3 Answers
It looks like this is your real error:
req: Error on line 1 of config file "H:\path\to\request.txt"This might be caused because of a weird character or space in the first line of the requests.txt file.
I was using Out-File in PowerShell to generate the config file. Apparently Out-File likes to add a bunch of gibberish to your text files, which of course isn't visible in Notepad. I changed the way I am generating the config file and now everything works fine.
you must execute that command while inside the folder that contains the script.