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

9

makecert

输入此命令后,会出现以下错误。

我尝试了提供的解决方案,但对我没有用。

例如:set 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了! - Suriyaa
3个回答

8

解释您的问题

这个错误主要出现在使用 OpenSSL 包或Windows安装程序的 Windows 计算机上!

原因是 OpenSSL 没有找到 openssl.cnf 文件


逐步说明

我建议您按照以下步骤操作(仅限 Windows):

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

    • 尝试这种简单快速的方法:使用Win+R key打开运行对话框,键入 cmd 并按下Enter
  2. 现在,在运行任何 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

有用的网站

还要阅读:


谢谢!我安装了64位版本,但是复制了一个从安装32位版本的人那里得到的SET命令,所以文件路径不对。 - Dr. Hilarius

4
手动在正确的位置创建 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

0
安装应用程序penSSL_Win64后,将位于C:\Program Files\OpenSSL-Win64中。因此,您需要使用控制台命令设置到该路径并编写以下内容: set OPENSSL_CONF=C:\Program Files\OpenSSL-Win64\bin\openssl.cfg

似乎没有起作用(已更新为正确路径) - Manza

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接