PHP openssl_public_encrypt 导致页面超时/连接重置?

Posted

技术标签:

【中文标题】PHP openssl_public_encrypt 导致页面超时/连接重置?【英文标题】:PHP openssl_public_encrypt causing Page Timeout/Connection Reset? 【发布时间】:2012-01-15 11:09:43 【问题描述】:

刚迁移到新机器并遇到问题。

注意:这是 Windows 7、Apache 2.2.21、MySQL 5.5.16、php 5.3.8 设置。

每次我运行某个 php 脚本时,都会遇到“页面加载错误 - 连接已重置”。我知道脚本在使用各种 echo 语句调用函数之前工作,但调用:

openssl_public_encrypt();

给我一​​个页面超时。我已将适当的 openssl.dll PATH 添加到我的 Windows 配置设置(D:\xampp\php\etc),但在我的实际 localhost 机器上仍然出现页面超时错误(以及上述错误)。

页面返回:

连接已重置

在加载页面时重置了与服务器的连接。

apache ssl 日志显示:

[Wed Dec 07 15:13:17 2011] [info] 加载 SSL 感知服务器的证书和私钥

[2011 年 12 月 7 日星期三 15:13:17] [调试] ssl_engine_pphrase.c(470):未加密的 RSA 私钥 - 不需要密码

[Wed Dec 07 15:13:17 2011] [info] 为 SSL 协议配置服务器

[2011 年 12 月 7 日星期三 15:13:17] [debug] ssl_engine_init.c(465):创建新的 SSL 上下文(协议:SSLv2、SSLv3、TLSv1)

[Wed Dec 07 15:13:17 2011] [debug] ssl_engine_init.c(420):配置 TLS 扩展处理

[2011 年 12 月 7 日星期三 15:13:17] [调试] ssl_engine_init.c(795):配置 RSA 服务器证书

[2011 年 12 月 7 日星期三 15:13:17] [警告] RSA 服务器证书 CommonName (CN) `localhost' 与服务器名称不匹配!?

[Wed Dec 07 15:13:17 2011] [debug] ssl_engine_init.c(834):配置 RSA 服务器私钥

PHPinfo() 显示:

**

openssl

**

OpenSSL support          |  enabled
----------------------------------------------------------
OpenSSL Library Version  |  OpenSSL 1.0.0e 6 Sep 2011
----------------------------------------------------------
OpenSSL Header Version   |  OpenSSL 0.9.8r 8 Feb 2011 

-

我的库和标头版本不应该匹配吗?这可能是我的错误的原因吗?

【问题讨论】:

【参考方案1】:

值得注意的是,这是在最新版本的 apache 和 php 中发现的错误。 Apache 版本使用了不兼容的文件。要解决(暂时仅在本地机器上):

替换 xampp/apache/bin 文件夹中的以下两个文件:

libeay32.dll ssleay32.dll

在您的 xampp/php 文件夹中使用同名文件。我立即解决了这个问题。

【讨论】:

【参考方案2】:

看看这个日志条目:

[warn] RSA 服务器证书 CommonName (CN) `localhost' 不 匹配服务器名称!?

如果你通过它的公共名称而不是本地主机访问机器,你仍然有同样的错误吗?

【讨论】:

好点,但在我的旧机器上使用“相同”设置时没有同样的问题。我已经创建了几个虚拟主机配置,所以我通过someurl 而不是localhost/some_foldername 直接访问我的站点。这会警告错误(此站点的证书不匹配,等等),但它不应该完全停止该过程。如您所见,无论如何,它似乎仍在继续。 我会做笔记,这是一个在 Windows 7 机器 WAMP 设置下本地运行的开发服务器。

以上是关于PHP openssl_public_encrypt 导致页面超时/连接重置?的主要内容,如果未能解决你的问题,请参考以下文章

php send.php php邮件模板#php

IntelliJ IDEA 11编辑php是,支持php文件名为.php5和.php4,如何设置能让其也支持.php呢?

如何从php5升级到php7

请问php中如何调用php文件中的内容?

php [php:PHPMailer示例] php库“PHPMailer”示例。 #PHP

php基础