无法从/usr/local/ssl/openssl.cnf加载configuration信息

在Windows上使用OpenSSL时:

openssl genrsa -out privatekey.pem 1024 -->

创build成功

 openssl req -new -x509 -key privatekey.pem -out publickey.cer -days 365 ----> 

显示错误信息为

无法从/usr/local/ssl/openssl.cnf加载configuration信息

对于我设置这个环境variables的工作。 重新启动没有。

set OPENSSL_CONF=c:/libs/openssl-0.9.8k/openssl.cnf

你应该指定configuration的绝对path,如下所示:

 openssl req -x509 -config "C:\OpenSSL-Win64\bin\openssl.cnf" ... 

在窗口中,[ 类似的情况 ]

我正面临同样的问题,但它是在请求证书签名请求。

我做了以下,它为我工作。

一旦安装了OpenSSL,在系统重启后,以pipe理员身份运行Ran命令提示符[为了最好的我做了两个..作为pipe理员和系统重启运行]

做了,1. [错误案例]

 C:\OpenSSL-Win64\bin>openssl req -new -key server.key -out server.csr 

警告:无法打开configuration文件:C:\ OpenSSL-Win64 \ bin \ openssl.cnf AND无法从C:\ OpenSSL-Win64 \ bin \ openssl.cnf加载configuration信息

2. [使用警告]

 C:\OpenSSL-Win64\bin> openssl req -new -key server.key -out server.csr -config C:\OpenSSL-Win64\bin\openssl.cfg 

[Warning message]:警告:无法打开configuration文件:C:\ OpenSSL-Win64 \ bin \ openssl.cnf

但提示我为server.key密码短语它为我工作。

我提到,这个链接对我的帮助。

谢谢。

我得到了答案

安装完openssl之后,需要重新启动计算机并以pipe理员身份运行。

那么它的作品

使用GnuWin32工具,我在C:\ gnuwin32 \ share下find了openssl.cnf

 set OPENSSL_CONF=C:\gnuwin32\share\openssl.cnf 

对于我在Windows 8上,我只是findopenssl.cnf文件并将其复制到C驱动器上。 然后:

 openssl req -new -key server.key -out server.csr -config C:\openssl.cnf 

完美的工作。

在Windows 10中,不需要重新启动,也不需要以pipe理员模式运行,而是像这样设置opensslconfiguration:

 set OPENSSL_CONF=C:\Program Files (x86)\GnuWin32\share\openssl.cnf 

当然,如果你使用的是GnuWin32

在Windows 7中,我不必重启只需在pipe理员模式下运行命令提示符。

在这种情况下唯一能够为我工作的是自build的openssl.cnf文件。

以下是练习所需的基础知识(根据需要编辑):

 # # OpenSSL configuration file. # # Establish working directory. dir = . [ ca ] default_ca = CA_default [ CA_default ] serial = $dir/serial database = $dir/certindex.txt new_certs_dir = $dir/certs certificate = $dir/cacert.pem private_key = $dir/private/cakey.pem default_days = 365 default_md = md5 preserve = no email_in_dn = no nameopt = default_ca certopt = default_ca policy = policy_match [ policy_match ] countryName = match stateOrProvinceName = match organizationName = match organizationalUnitName = optional commonName = supplied emailAddress = optional [ req ] default_bits = 1024 # Size of keys default_keyfile = key.pem # name of generated keys default_md = md5 # message digest algorithm string_mask = nombstr # permitted characters distinguished_name = req_distinguished_name req_extensions = v3_req [ req_distinguished_name ] # Variable name Prompt string #------------------------- ---------------------------------- 0.organizationName = Organization Name (company) organizationalUnitName = Organizational Unit Name (department, division) emailAddress = Email Address emailAddress_max = 40 localityName = Locality Name (city, district) stateOrProvinceName = State or Province Name (full name) countryName = Country Name (2 letter code) countryName_min = 2 countryName_max = 2 commonName = Common Name (hostname, IP, or your name) commonName_max = 64 # Default values for the above, for consistency and less typing. # Variable name Value #------------------------ ------------------------------ 0.organizationName_default = My Company localityName_default = My Town stateOrProvinceName_default = State or Providence countryName_default = US [ v3_ca ] basicConstraints = CA:TRUE subjectKeyIdentifier = hash authorityKeyIdentifier = keyid:always,issuer:always [ v3_req ] basicConstraints = CA:FALSE subjectKeyIdentifier = hash 

模板来源

我希望有帮助。

对我来说,在调用之前把variables做了:

 OPENSSL_CONF=/usr/ssl/openssl.cnf openssl req -new -x509 -key privatekey.pem -out publickey.cer -days 365