在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加载配置信息
当前回答
关于为什么找不到openssl的基本问题: 简单回答:一些openssl的安装包预先包含了默认的openssl.cnf。其他包则不然。 在后一种情况下,你将包括一个下面所示的链接; 您可以根据需要输入额外的用户细节——DN名称等。
从https://www.openssl.org/docs/manmaster/man5/config.html,I直接引用:
openssl库配置
应用程序可以使用主OpenSSL配置文件或可选的备用配置文件自动配置OpenSSL的某些方面。openssl实用程序包括这个功能:任何sub命令都使用主openssl配置文件,除非在sub命令中使用选项来使用替代配置文件。
要启用库配置,默认部分需要包含指向主配置部分的适当行。默认名称为openssl工具使用的openssl_conf。其他应用程序可能使用替代名称,例如myapplication_conf。所有库配置行都显示在配置文件开头的默认部分中。
配置部分应该由一组包含特定模块配置信息的名称值对组成。该名称表示配置模块的名称。该值的含义是模块特定的:例如,它可以表示包含配置模块特定信息的进一步配置部分。例如:“
因此,似乎必须自行配置openssl.cnf 专有名称(DN),以及特定于您的使用的其他条目。
下面是可以从中生成openssl.cnf的模板文件 用特定的元素。
一个应用程序实际上有一个演示安装,其中包含一个演示的.cnf文件。
此外,如果需要以编程方式访问.cnf文件,也可以这样做 包含适当的头文件——openssl/conf.h——并解析你的.cnf文件 使用
CONF_modules_load_file(const char *filename, const char *appname,
unsigned long flags);
下面是“CONF_modules_load_file”的文档;
其他回答
对我来说,在调用之前放置变量是可行的:
OPENSSL_CONF=/usr/ssl/openssl.cnf openssl req -new -x509 -key privatekey.pem -out publickey.cer -days 365
在我的例子中,我需要使用config选项在命令上手动设置openssl.cnf文件的路径。所以这个命令
openssl req -x509 -config "C:\Users\sk\Downloads\openssl-0.9.8k_X64\openssl.cnf" -newkey rsa:4096 -keyout key.pem -out cert.pem -nodes -days 900
我在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环境变量,但是如果这个环境变量存在,它必须指向有效的文件。
对我来说,在Windows 8上,我只是找到了openssl.cnf文件,并将其复制到C盘。然后:
openssl req -new -key server.key -out server.csr -config C:\openssl.cnf
完美的工作。
在Windows 10中,不需要重新启动,也不需要以管理员模式运行,而是像这样设置openssl配置:
set OPENSSL_CONF=C:\Program Files (x86)\GnuWin32\share\openssl.cnf
当然,如果你使用的是GnuWin32