【问题标题】:Why does openssl_pkey_new() fail?为什么 openssl_pkey_new() 失败?
【发布时间】:2011-05-16 00:19:54
【问题描述】:

我对此很陌生。为什么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。有什么想法吗?

【问题讨论】:

标签: php windows openssl xampp


【解决方案1】:

使用 openssl_error_string() 找出为什么 openssl_pkey_new() 返回 false(或任何其他 OpenSSL 错误)。


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

【讨论】:

    【解决方案2】:

    对我来说,在 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

    【讨论】:

    • 谢谢,星。 15 年或更长时间后,我终于放弃了 Xampp,安装了 Apache、PHP 和 MySql。出乎意料地容易做到,最后,我觉得自己很专业;-)自从我问这个问题以来已经 11 年了,我什至不记得它,更不用说重现它了,但是感谢您发布您的答案。我希望它对将来在这里发帖的其他人有所帮助(upvote)
    猜你喜欢
    • 1970-01-01
    • 2015-06-19
    • 2014-06-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多