我正在运行的Windows XP 32位
我刚刚从下面的URL下载了Openssl并安装了它。 http://www.slproweb.com/products/Win32OpenSSL.html
然后我尝试使用以下命令创build一个自签名证书
openssl req -x509 -days 365 -newkey rsa:1024 -keyout hostkey.pem -nodes -out hostcert.pem
那么它开始给出以下错误
无法从/usr/local/ssl/openssl.cnf加载configuration信息
然后谷歌search后,我改变了上述命令
openssl req -config C:\OpenSSL\bin\openssl.conf -x509 -days 365 -newkey rsa:1024 -keyout hostkey.pem -nodes -out hostcert.pem
但是现在我在命令提示符下出现以下错误
C:\ OpenSSL \ bin \ openssl.conf行-1上的错误
4220:error:02001002:system library:fopen:No such file or directory:。\ crypto \ bio \ bss_file.c:126:fopen('C:\ OpenSSL \ bin \ openssl.conf','rb')4220:错误:2006D080:BIO例程:BIO_new_file:没有这样的文件:。\ crypto \ bio \ bss_file.c:129:
4220:error:0E078072:configuration file routines:DEF_LOAD:no such file:。\ crypto \ conf \ conf_def.c:197:
请帮忙。 提前致谢。
在Windows上,您还可以设置环境属性OPENSSL_CONF
。 例如,从命令行中可以输入:
set OPENSSL_CONF=c:/libs/openssl-0.9.8k/openssl.cnf
验证它你可以输入:
echo %OPENSSL_CONF%
您也可以将其设置为计算机环境变量的一部分,以便所有用户和服务在默认情况下都可用。 例如,请参阅Windows NT中的环境变量以及如何在Windows XP中管理环境变量 。
现在,您可以运行openssl命令而不必传递配置位置参数。
只需在命令行中添加参数-config c:\your_openssl_path\openssl.cfg
,将your_openssl_path
更改为实际安装的路径。
只需在第四步创建一个openssl.cnf文件就可以了: http : //www.flatmtn.com/article/setting-openssl-create-certificates
试试以管理员身份运行openssl.exe。
如果您已经使用OpenSSL安装了Apache,请导航到bin目录。 在我的情况下,D:\ apache \ bin。
* 如果你独立安装openssl,这些命令也可以工作。
运行这些命令:
openssl req -config d:\apache\conf\openssl.cnf -new -out d:\apache\conf\server.csr -keyout d:\apache\conf\server.pem openssl rsa -in d:\apache\conf\server.pem -out d:\apache\conf\server.key openssl x509 -in d:\apache\conf\server.csr -out d:\apache\conf\server.crt -req -signkey d:\apache\conf\server.key -days 365
* 这将创建自签名证书,您可以用于开发目的
再一次,如果你在httpd.conf中安装了Apache,可以使用以下命令:
<Ifmodulee ssl_module> SSLEngine on SSLCertificateFile "D:/apache/conf/server.crt" SSLCertificateKeyFile "D:/apache/conf/server.key" </Ifmodulee>
set OPENSSL_CONF=c:/{path to openSSL}/bin/openssl.cfg
照顾正确的扩展( openssl.cfg不cnf)!
我从这里安装了OpenSSL: http : //slproweb.com/products/Win32OpenSSL.html
我刚刚使用Apache的openssl.exe for windows bin文件夹也有类似的错误。 我有指定的-config标志在openssl.cnf文件的路径中有一个错字。 我想你会发现的
openssl req -config C:\OpenSSL\bin\openssl.conf -x509 -days 365 -newkey rsa:1024 -keyout hostkey.pem -nodes -out hostcert.pem
应该
openssl req -config "C:\OpenSSL\bin\openssl.cnf" -x509 -days 365 -newkey rsa:1024 -keyout hostkey.pem -nodes -out hostcert.pem
注意: conf应该是cnf 。
如果openssl安装成功,在c盘中搜索“OPENSSL”,找到配置文件并设置路径。
set OPENSSL_CONF=<location where cnf is available>/openssl.cnf
它为我工作。
这里的问题是没有一个openssl.cnf文件给GnuWin32 openssl的东西。 你必须创建它。 你可以在这里找到如何创建一个openssl.cnf文件:
http://www.flatmtn.com/article/setting-ssl-certificates-apache
它在哪里为你如何做到这一切。
请注意:最后用反斜杠给出的openssl命令是用于UNIX的。 对于Windows:1)删除反斜杠,2)将第二行向上移动,使其位于第一行的末尾。 (所以你只有一个命令。)
另外:阅读评论是非常重要的。 你可能想根据他们做一些改变。
如果你看到一个类似的错误
第-1行错误:apacheconfopenssl.cnf
尝试在-config中从反斜杠改变为前斜杠。
以管理员身份运行该命令,并将配置文件复制到具有读权限的位置,并使用-config参数指定路径。
这个解决方法在我的工作中帮了我们很多(技术支持),我们做了一个简单的批处理文件,我们可以从任何地方运行(我们没有权限来安装它)。 这个解决方法将设置变量,然后为您运行OpenSSL。 它也为您打开bin文件夹(因为这是您创建或修改的任何文件将被保存)。 另外,这只适用于Windows。
将此代码复制到名为StartOpenSSL.bat的文件。 将其保存到您选择的位置。 它可以从任何地方运行。
@echo off title OpenSSL cd\openssl\bin if exist "C:\openssl\share\openssl.cnf" ( set OPENSSL_CONF=c:/openssl/share/openssl.cnf start explorer.exe c:\openssl\bin echo Welcome to OpenSSL openssl ) else ( echo Error: openssl.cnf was not found echo File openssl.cnf needs to be present in c:\openssl\share pause ) exit
https://github.com/xgqfrms-gildata/App001/issues/3
openssl.cnf
文件; $ echo %OPENSSL_CONF% $ set OPENSSL_CONF=C:\OpenSSL\bin\openssl.cnf