我已经安装了OpenSSL 64.我想为我的nodejs https服务器使用证书.我运行了以下命令:
openssl genrsa -out subdomain.domain.com.key 1024
Run Code Online (Sandbox Code Playgroud)
但我得到了错误:
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)
Run Code Online (Sandbox Code Playgroud)
我该如何解决?
这是正确的命令吗?
小智 240
解决方案是运行此命令:
set OPENSSL_CONF=C:\OpenSSL-Win32\bin\openssl.cfg
Run Code Online (Sandbox Code Playgroud)
要么
set OPENSSL_CONF=[path-to-OpenSSL-install-dir]\bin\openssl.cfg
Run Code Online (Sandbox Code Playgroud)
在使用openssl命令之前的命令提示符中.
让我们openssl知道在哪里可以找到它的.cfg文件.
或者,您可以OPENSSL_CONF在Windows环境变量中设置相同的变量.
注意:当使用Shining Light Productions的OpenSSL二进制发行版(可免费下载和使用的官方OpenSSL的编译+安装程序版本)时,可能会发生这种情况.这种分布从OpenSSL网站"半正式"链接,作为"主要用于没有预编译的OpenSSL包的操作系统的服务".
小智 18
我在Apache2.4.4上使用SSL并首先执行此代码,做了诀窍:
set OPENSSL_CONF=C:\wamp\bin\apache\Apache2.4.4\conf\openssl.cnf
然后执行其余代码..
小智 8
/usr/local/ssl/openssl.cnf
这样的路径意味着程序已经用Cygwin或MSYS编译.如果你必须使用它,openssl那么你需要一个能理解这些路径的解释器,比如Cygwin或MSYS提供的Bash.
另一种选择是下载或编译Windows Native版本的openssl.使用该程序将需要一个像这样的路径
C:\Users\Steven\ssl\openssl.cnf
Run Code Online (Sandbox Code Playgroud)
哪个更适合命令提示符.
小智 7
在我的例子中,我使用了Shining Light中的二进制文件,环境变量已经更新.但是在我运行具有提升权限的命令窗口之前仍然存在问题.
打开CMD窗口时,请确保以管理员身份运行它.(右键单击"开始"菜单中的"命令提示符",然后选择"以管理员身份运行")
我认为由于用户帐户控制,它无法读取文件.
只需-config正确设置参数位置,即:
openssl .................... -config C:\bin\apache\apache2.4.9\conf\openssl.cnf
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
230204 次 |
| 最近记录: |