警告:无法打开配置文件:./bin/openssl.cnf

Posted

技术标签:

【中文标题】警告:无法打开配置文件:./bin/openssl.cnf【英文标题】:WARNING: can't open config file: ./bin/openssl.cnf 【发布时间】:2015-10-26 15:36:39 【问题描述】:

制作证书

然后按回车就会出现这个错误。

我尝试了提供的解决方案,但对我不起作用。

例如:设置 OPENSSL_CONF=c:/OpenSSL_Win64/bin/openssl.cnf

<pre>WARNING: can't open config file: ./bin/openssl.cnf
Unable to load config info from ./bin/openssl.cnf
WARNING: can't open config file: ./bin/openssl.cnf
Error opening Private Key privkey.pem
5344:error:02001002:system library:fopen:No such file or directory:.\crypto\bio\
bss_file.c:398:fopen('privkey.pem','rb')
5344:error:20074002:BIO routines:FILE_CTRL:system lib:.\crypto\bio\bss_file.c:40
0:
unable to load Private Key
WARNING: can't open config file: ./bin/openssl.cnf
Loading 'screen' into random state - done
server.csr: No such file or directory
Could Not Find C:\xampp\apache\.rnd
Could Not Find C:\xampp\apache\privkey.pem
Could Not Find C:\xampp\apache\server.csr
The system cannot find the file specified.
The system cannot find the file specified.

-----
Das Zertifikat wurde erstellt.
The certificate was provided.</pre>

【问题讨论】:

您忘记在 Windows 上为 OpenSSL 正确添加系统环境变量!您可能将其设置为错误的路径,或者您忘记以管理员身份运行 CMD! 【参考方案1】:

安装应用程序 penSSL_Win64 时,将位于 C:\Program Files\OpenSSL-Win64 因此,您需要使用控制台命令设置此路径并写入: 设置 OPENSSL_CONF=C:\Program Files\OpenSSL-Win64\bin\openssl.cfg

【讨论】:

似乎没有工作(更新到正确的路径)【参考方案2】:

在正确的位置手动创建一个openssl.cnf文件可以解决问题。

Here 是一个文件模板(根据需要编辑):

#
# 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

【讨论】:

【参考方案3】:

解释你的问题

这个错误主要出现在Windows电脑上当你使用OpenSSL包或者the Windows installer!

原因是OpenSSL找不到openssl.cnf文件


分步说明

我建议您执行以下操作(仅限 Windows):

    以管理员身份打开您的命令提示符(很少有 OpenSSL 命令以随机状态打开),因此当 OpenSSL 尝试在您的磁盘上写入内容时它会失败。

    试试这个简单快捷的方法:用打开运行对话框,输入cmd然后点击

    现在,在您运行任何 OpenSSL 命令之前,请键入以下内容:

    set OPENSSL_CONF=c:\[PATH TO YOUR OPENSSL DIRECTORY]\bin\openssl.cfg

    示例路径为:C:\OpenSSL-Win32\bin\openssl.cfg。对于 Windows(x64 位),请使用 C:\OpenSSL-Win64\bin\openssl.cfg!

完成此操作后,您就可以开始使用 OpenSSL 了。试试openssl version,错误就消失了。

请记住,每次打开命令提示符时都必须运行上述命令,除非您将其设置为环境变量。


解决您的问题

您的问题可能是:

您将环境变量设置到文件夹OpenSSL_Win64。应该是OpenSSL-Win64! 您可能忘记了以管理员身份运行命令提示符! 您将环境变量设置为文件openssl.cnf,但它必须是openssl.cfg

有用的网站

另请阅读:

WARNING: can’t open config file: /usr/local/ssl/openssl.cnf on Windows 7(针对您的问题的另一个详细说明) How To Add/Edit Environment Variables in Windows 7(如果您想在 Windows 上永久设置环境变量,这很有帮助!)

【讨论】:

谢谢!我安装了 64 位版本,但是从安装 32 位的人那里复制了 SET 命令,所以它是错误的文件路径。

以上是关于警告:无法打开配置文件:./bin/openssl.cnf的主要内容,如果未能解决你的问题,请参考以下文章

PHP 警告:未知:无法打开流

什么是 keycharmap 文件?为什么我收到“无法打开 keycharmap 文件”警告?

GenerateDSYMFile 警告:无法打开目标文件

PHP警告:无法打开流:没有这样的文件或目录,文件路径错误

可以在 Visual Studio 2010 中抑制“无法找到或打开 PDB 文件”警告吗?

警告:无法打开流:第 17 行的 C:\wamp\www\laravel\bootstrap\autoload.php 中没有这样的文件或目录