无法打开configuration文件:/usr/local/ssl/openssl.cnf在Windows上

我已经安装了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) 

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

该解决scheme正在运行此命令:

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

要么

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

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

openssl知道在哪里find它的.cfg文件。

或者,您可以在Windows环境variables中设置相同的variablesOPENSSL_CONF

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

我在Apache2.4.4上使用了SSL,并且一开始就执行了这个代码,
set OPENSSL_CONF=C:\wamp\bin\apache\Apache2.4.4\conf\openssl.cnf

然后执行其余的代码

/usr/local/ssl/openssl.cnf

像这样的path意味着程序已经用Cygwin或MSYS编译。 如果你必须使用这个openssl那么你将需要一个理解这些path的解释器,比如Cygwin或者MSYS提供的Bash。

另一种select是下载或编译Windows本地版本的openssl 。 使用该程序将需要一个类似的path

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

这将更适合命令提示符。

在我的情况下,我使用Shining Light中的二进制文件,环境variables已经更新。 但是直到我用提升的权限运行一个命令窗口时仍然存在这个问题。

当你打开CMD窗口时,一定要以pipe理员身份运行它。 (右键单击“开始”菜单中的命令提示符并select“以pipe理员身份运行”)

我认为它不能读取由于用户帐户控制的文件。

解!

只要正确设置参数的位置,即:

 openssl .................... -config C:\bin\apache\apache2.4.9\conf\openssl.cnf 

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

执行了

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

很好..

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