OpenSSL在配置文件中找不到专有名称

时间:2019-07-11 14:38:41

标签: windows openssl

当尝试在Windows上通过openssl生成csr时,出现错误并指出“无法在配置中找到'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是openssl.exe的PowerShell别名):

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:

distinguished_name是在配置中定义的,因此我不确定这里的openssl是什么。我真的不知所措。有什么想法吗?

2 个答案:

答案 0 :(得分:0)

这似乎是您的真正错误:

要求:配置文件“ H:\ path \ to \ request.txt”的第1行出错

这可能是由于requests.txt文件第一行中的字符或空格怪异所致。

答案 1 :(得分:0)

我在PowerShell中使用Out-File生成配置文件。显然,Out-File喜欢在文本文件中添加一堆乱码,这当然在记事本中是不可见的。我更改了生成配置文件的方式,现在一切正常。