154

我已经安装了 OpenSSL 64。我想为我的 nodejs https 服务器使用证书。我运行了以下命令:

openssl genrsa -out subdomain.domain.com.key 1024

但我得到了错误:

WARNING: can't open config file: /usr/local/ssl/openssl.cnf
Loading 'screen' into random state - done
Generating RSA private key, 1024 bit long modulus
.........++++++
.........................................++++++
unable to write 'random state'
e is 65537 (0x10001)

我该如何解决?
这是正确的命令吗?

4

7 回答 7

275

解决方案正在运行此命令:

set OPENSSL_CONF=C:\OpenSSL-Win32\bin\openssl.cfg   

或者

set OPENSSL_CONF=[path-to-OpenSSL-install-dir]\bin\openssl.cfg

在使用openssl命令之前的命令提示符中。

确定openssl在哪里可以找到它的.cfg文件。

或者,您可以OPENSSL_CONF在 Windows 环境变量中设置相同的变量。

注意:当使用来自 Shining Light Productions 的 OpenSSL 二进制发行版(官方 OpenSSL 的编译 + 安装程序版本,可免费下载和使用)时,可能会发生这种情况。这个发行版是从 OpenSSL 网站“半官方”链接的,作为“主要用于没有预编译 OpenSSL 包的操作系统的服务”。

于 2013-10-08T13:41:41.710 回答
23

我在 Apache2.4.4 上使用了 SSL,并首先执行了这段代码,成功了:
set OPENSSL_CONF=C:\wamp\bin\apache\Apache2.4.4\conf\openssl.cnf

然后执行其余代码..

于 2014-08-29T03:48:58.847 回答
9

/usr/local/ssl/openssl.cnf

像这样的路径意味着程序已经用 Cygwin 或 MSYS 编译。如果您必须使用它,openssl那么您将需要一个能够理解这些路径的解释器,例如 Cygwin 或 MSYS 提供的 Bash。

另一种选择是下载或编译 Windows 本机版本的openssl. 使用该程序将需要类似的路径

C:\Users\Steven\ssl\openssl.cnf

这将更适合命令提示符。

于 2013-05-20T21:39:34.540 回答
7

就我而言,我使用了 Shining Light 的二进制文件,并且环境变量已经更新。但是在我以提升的权限运行命令窗口之前仍然存在问题。

当您打开 CMD 窗口时,请务必以管理员身份运行它。(右键单击开始菜单中的命令提示符并选择“以管理员身份运行”)

我认为由于用户帐户控制,它无法读取文件。

于 2015-07-10T15:38:44.717 回答
5

解决方案!

只需正确设置-config参数位置,即:

openssl ....................  -config C:\bin\apache\apache2.4.9\conf\openssl.cnf
于 2016-01-23T10:32:19.877 回答
3

不确定 .cfg 和 .cnf 之间有什么区别在我的服务器中我找不到 .cfg 或 .cnf 我已经为其创建了一个新文件并将放在以下文件夹中/usr/local/ssl/bin

执行了

.\openssl genrsa -des3 -out <key name>.key 2048 

过得很好。。

于 2015-05-15T08:55:44.900 回答
1

只需安装 Win64 OpenSSL v1.0.2a 或 Win32 OpenSSL v1.0.2a,您可以从http://slproweb.com/products/Win32OpenSSL.html。开箱即用,无需配置。

于 2015-06-09T18:39:28.463 回答