当尝试在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是什么。我真的不知所措。有什么想法吗?
答案 0 :(得分:0)
这似乎是您的真正错误:
要求:配置文件“ H:\ path \ to \ request.txt”的第1行出错
这可能是由于requests.txt文件第一行中的字符或空格怪异所致。
答案 1 :(得分:0)
我在PowerShell中使用Out-File生成配置文件。显然,Out-File喜欢在文本文件中添加一堆乱码,这当然在记事本中是不可见的。我更改了生成配置文件的方式,现在一切正常。