【问题标题】:WARNING: can't open config file: ./bin/openssl.cnf警告:无法打开配置文件:./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!

标签: windows openssl xampp ssl-certificate


【解决方案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):

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

      • 试试这个简单快捷的方法:打开运行对话框,输入cmd然后点击
    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 命令,所以它是错误的文件路径。
    猜你喜欢
    • 2016-08-05
    • 2016-06-06
    • 2013-05-15
    • 1970-01-01
    • 2013-04-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-15
    相关资源
    最近更新 更多