为什么openssl_pkey_new()会失败?

时间:2010-11-26 04:21:01

标签: php windows openssl xampp

我对此很新。为什么openssl_pkey_new()返回false?

我正在使用XAMPP,Apahce\bin目录下有一个OpenSSL。

我做的是什么明显的初学者错误?也许这是SSL配置的问题?

我的目标是将两个密钥写入两个文件。


更新 :根据建议,我使用了openssl_error_string(),并说error:02001003:system library:fopen:No such process。听起来好像OpenSSL没有运行或者不在路径中?有什么想法吗?


更新 :我将c:\xampp\php放入Windows路径,以便找到libeay32.dll并重新启动Apache。

现在我得到error:2006D080:BIO routines:BIO_new_file:no such file。有什么想法吗?

2 个答案:

答案 0 :(得分:17)

使用openssl_error_string()找出openssl_pkey_new()返回false(或任何其他OpenSSL错误)的原因。


在您的最新更新后,OpenSSL似乎找不到openssl.cnf文件,described here

答案 1 :(得分:1)

对于我在 Windows 10 上使用 XAMPP 的情况:

  1. https://stackoverflow.com/a/18869750/4695499。 (您可以在 Windows 10 的旧控制面板中的一个显示选项下找到这些步骤)
  2. 我还尝试在 php.ini 中取消注释 extension=php_openssl.dll(但我的意思是没有它也能工作)
  3. 我重新启动了计算机和 Apache,然后 openssl_pkey_new() 生成了一些 RESOURCE 而不是 false