在Windows上使用OpenSSL时:
Openssl genrsa out privatekey。Pem 1024—>
成功创建
openssl req -new -x509 -key privatekey.pem -out publickey.cer -days 365
---->
显示错误消息为
无法从/usr/local/ssl/openssl.cnf加载配置信息
在Windows上使用OpenSSL时:
Openssl genrsa out privatekey。Pem 1024—>
成功创建
openssl req -new -x509 -key privatekey.pem -out publickey.cer -days 365
---->
显示错误消息为
无法从/usr/local/ssl/openssl.cnf加载配置信息
当前回答
我在Windows 7上也遇到了类似的问题:
WARNING: can't open config file: C:\OpenSSL-Win32\bin\openssl.cfg
Unable to load config info from C:\OpenSSL-Win32\bin\openssl.cfg
原因是在没有使用deinstallator的情况下删除了OpenSSL-Win32目录,所以没有正确地从系统中删除所有组件。 我不得不手动删除环境变量OPENSSL_CONF。
一些openssl二进制文件,例如安装在git中,不需要OPENSSL_CONF环境变量,但是如果这个环境变量存在,它必须指向有效的文件。
其他回答
对我来说,在调用之前放置变量是可行的:
OPENSSL_CONF=/usr/ssl/openssl.cnf openssl req -new -x509 -key privatekey.pem -out publickey.cer -days 365
如果你使用的是Win32 OpenSSL v1.1.0g,设置这个环境变量:
set OPENSSL_CONF=C:\OpenSSL-Win32\bin\cnf\openssl.cnf
在运行此命令之前,先使用“server. exe”。Key”,成功创建server.csr:
openssl req -new -key server.key -out server.csr
在这种情况下,唯一对我有用的是自己创建的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
我希望这对你有所帮助。
使用GnuWin32工具,我在C:\ GnuWin32 \share下找到了openssl.cnf
set OPENSSL_CONF=C:\gnuwin32\share\openssl.cnf
在Windows Powershell上:
$env:OPENSSL_CONF = "${env:ProgramFiles}\OpenSSL-Win64\bin\openssl.cfg"