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

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

我该怎么解决呢?
这是正确的命令吗? < br/>

327870 次浏览

/usr/local/ssl/openssl.cnf

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

另一种选择是下载或编译 openssl的 WindowsNativeversion。如果使用该方法,则程序将需要类似于

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

更适合使用命令提示符。

解决方案是运行以下命令:

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

或者

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

在使用 openssl命令之前,在命令提示符中输入。

openssl知道在哪里可以找到它的 .cfg文件。

或者,您可以在 Windows 环境变量中设置相同的变量 OPENSSL_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

然后执行剩下的代码。

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

执行

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

很顺利。

只需安装 Win64 OpenSSL v1.0.2 a 或 Win32 OpenSSL v1.0.2 a,您可以从 译自: 美国《科学》杂志网站(http://slproweb.com/products/win32OpenSSL.html) http://slproweb.com/products/win32openssl.html : 下载这些文件。开箱即用,不需要配置。

在我的例子中,我使用了来自 Shining Light 的二进制文件,并且环境变量已经被更新了。但在我运行一个具有更高权限的命令窗口之前,这个问题仍然存在。

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

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

解决方案!

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

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