相关疑难解决方法(0)

OpenSSL和读取openssl.conf文件时出错

我正在运行Windows XP 32位

我刚刚从以下URL下载了Openssl并安装了它. http://www.slproweb.com/products/Win32OpenSSL.html

然后我尝试使用以下命令创建自签名证书

openssl req -x509 -days 365 -newkey rsa:1024 -keyout hostkey.pem -nodes -out hostcert.pem
Run Code Online (Sandbox Code Playgroud)

然后它开始给出以下错误

无法从/usr/local/ssl/openssl.cnf加载配置信息

然后谷歌搜索后我改变了上面的命令

openssl req -config C:\OpenSSL\bin\openssl.conf -x509 -days 365 -newkey rsa:1024 -keyout hostkey.pem -nodes -out hostcert.pem
Run Code Online (Sandbox Code Playgroud)

但现在我在命令提示符中收到以下错误

C:\ OpenSSL\bin\openssl.conf的第-1行错误
4220:错误:02001002:系统库:fopen:没有这样的文件或目录:.\ 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:错误:0E078072:配置文件例程:DEF_LOAD:没有这样的文件:.\ crypto\conf\conf_def.c:197:

请帮忙.提前致谢.

windows configuration openssl environment-variables

113
推荐指数
9
解决办法
30万
查看次数

OpenSSL无法在Windows上运行,错误0x02001003 0x2006D080 0x0E064002

问题: OpenSSL无法在我的Windows环境中运行.OpenSSL重复报告错误0x02001003,0x2006D080和0x0E064002.

环境:

Windows NT x 6.1 build 7601 (Windows 7 Business Edition Service Pack 1) i586
Apache/2.4.4 (Win32)
PHP/5.4.13 x86
PHP Directory: E:\wamp\php\
Virtual Host Directory: E:\Projects\1\public_html
Run Code Online (Sandbox Code Playgroud)

我尝试过的:

  • 安装说明 http://www.php.net/manual/en/openssl.installation.php
  • 的php.ini extension=php_openssl.dll
  • openssl.cnf中 E:\wamp\php\extras\openssl.cnf
  • %路径% E:\wamp\php
  • 重新启动
  • phpinfo:
    ----支持OpenSSL支持
    ---- OpenSSL库版本OpenSSL 1.0.1e 2013年2月11日
    ---- OpenSSL头版本OpenSSL 0.9.8y 2013年2月5日
  • 带和不带指定配置configargs
  • 有和没有<Directory E:\wamp\php\extras>在apache配置中指定
  • 复制openssl.cnf到virtualhost public_html,指向并仍然得到相同的错误
  • error_log中没有记录任何内容
  • 研究过:我花了最近两天研究这个,感到惊讶的是没有更多信息,所以我在这里发帖.似乎是OpenSSL配置或apache/php没有正确读取配置的问题.

码:

$privateKey = openssl_pkey_new();
while($message = openssl_error_string()){
    echo $message.'<br />'.PHP_EOL;
}
Run Code Online (Sandbox Code Playgroud)

结果:

error:02001003:system library:fopen:No such …
Run Code Online (Sandbox Code Playgroud)

php apache openssl apache2 easyphp

50
推荐指数
2
解决办法
3万
查看次数

调用openssl_pkey_new()时xampp openssl错误;

所以我试图让openssl在我的Windows安装xampp(1.7.3)上工作,这是用OpenSSL 0.9.8l构建的.这是我第二次在*amp安装上安装openssl但是第一次游泳(这是在同一台机器上的wamp安装,但我发现xampp更像是我的风格所以我切换了).

当我尝试一个简单的设置脚本时:

var_dump(getenv('OPENSSL_CONF'));
$privateKey = openssl_pkey_new();

while($message = openssl_error_string()){
    echo $message.'<br />'.PHP_EOL;
}
Run Code Online (Sandbox Code Playgroud)

我收到了一条返回的消息:

error:02001003:system library:fopen:No such process
error:2006D080:BIO routines:BIO_new_file:no such file  
error:0E064002:configuration file routines:CONF_load:system lib  
Run Code Online (Sandbox Code Playgroud)

我读了php.net页面,告诉我需要设置openssl.cnf和ssleay.dll环境常量的可能性,我试过但没有改变.

var_dumpOPENSSL_CONF导致的路径:C:/xampp/apache/bin/openssl.cnf这是我的机器是正确的.

我检查了php目录的路径(ssleay32.dll和libeay32.dll所在的位置)是在我的路径系统var中定义的,但它不是,所以我定义了它,重新启动了我的机器,并在此过程中重新启动了apache,但错误消息没有变化.

我的xampp版本没有附带php_openssl.dll,因此我相信php.ini文档应该将它从可用的.dll列表中排除,就像我检查时一样.我相信xampp会编译一个基于zend的扩展.

我能够从xampp gui启动openssl,并且我成功地创建了一个私钥/公钥对.

phpinfo()报道:

openssl OpenSSL支持启用
OpenSSL库版本OpenSSL
0.9.8l 2009年11月5日OpenSSL头版本OpenSSL 0.9.8l 2009年11月5日

我在我的系统目录中假设的wamp安装中有一个旧的ssleay.dll和libeay32.dll但是我已经将它们删除了.(重启后重启apache)

我试着将openssl.cnf复制到默认目录'C:\ usr\local\ssl\openssl.cnf'没有变化.

我也阅读了这个帖子和这个帖子,但给出的答案是相关的,但没有帮助或不存在.

任何人对我接下来要检查的内容或任何我错过的明显内容都有任何想法?

php windows xampp openssl

9
推荐指数
2
解决办法
8108
查看次数

如何创建新密钥对并将其保存在文件中?

如何创建新密钥对并将其保存在文件中?我猜是OpenSSL.我有Windows 7和Xampp,它在APache目录中有OpenSSL(虽然我在openssl_pkey_new()时遇到一些问题(请参阅为什么openssl_pkey_new()失败?).

无论如何,一旦我配置了OpenSSL,创建新密钥对并将其保存在文件中的代码是什么样的?

php xampp openssl

5
推荐指数
1
解决办法
4883
查看次数

openssl_pkey_export和"无法从参数1获取密钥"

我需要在我的php项目中使用openssl,所以我使用openssl创建了一个测试php页面.但是,我不断收到这些错误,我不知道为什么.openssl已启用.

警告:openssl_pkey_export()[function.openssl-pkey-export]:无法从第18行的C:\ wamp\www\opensslsample\index.php中的参数1获取密钥

警告:openssl_pkey_get_details()期望参数1为资源,布线在第21行的C:\ wamp\www\opensslsample\index.php中给出

<?php
 //echo phpinfo();

   $privateKey = openssl_pkey_new(array(
'private_key_bits' => 1024,
'private_key_type' => OPENSSL_KEYTYPE_RSA,
));

openssl_pkey_export($privateKey, $privkey,"123");

$pubkey=openssl_pkey_get_details($privateKey);
$pubkey=$pubkey["key"];
?>
Run Code Online (Sandbox Code Playgroud)

php openssl rsa

3
推荐指数
2
解决办法
9872
查看次数