首页 > 解决方案 > 生成 CSR 时无法在配置中找到“distinguished_name”

问题描述

我想生成带有 SAN 部分的 CSR 并不断收到以下错误:unable to find 'distinguished_name' in config

据我所知,cnf 结构合理,也被调用。请注意 CN 值与 SAN 不匹配,并且是我的组织强制要求的。

这是我的cnf文件的内容:

[me@server-5007749 ~]$ cat openssl.cnf
[ req ]
distinguished_name = req_distinguished_name
req_extensions     = req_ext
[ req_distinguished_name ]
C = CA
0.OU = SSL
1.OU = Device
O = MyOrg
CN = 43546323
[ req_ext ]
subjectAltName = @alt_names
[ alt_names ]
DNS.1 = my_fqdn_here.ca

这是我的 shell 脚本的内容,其中包含创建 CSR 的命令:

[me@server-5007749 ~]$ cat ssl.sh
export OPENSSL_CONF=/home/me
printenv OPENSSL_CONF
openssl req -new -key /opt/rh/httpd24/root/etc/httpd/certs/private.key -out site_csr.csr

这是我的 shell 脚本的输出:

[me@server-5007749 ~]$ ./ssl.sh
/home/me
unable to find 'distinguished_name' in config
problems making Certificate Request
140524933736336:error:0E06D06C:configuration file routines:NCONF_get_string:no value:conf_lib.c:324:group=req name=distinguished_name

编辑#1

我尝试了几个不同的 OpenSSL 版本,认为我可能会得到更好的结果:

标签: apacheopensslrhelcsr

解决方案


OPENSSL_CONF用于指定配置文件的位置。试试这个

export OPENSSL_CONF=/home/me/openssl.cnf

推荐阅读