无法打开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。