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

时间:2011-12-07 22:55:13

标签: php windows apache openssl xampp

刚迁移到新计算机并遇到问题。

注意:这是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感知服务器的私钥

     

[Wed Dec 07 15:13:17 2011] [debug] ssl_engine_pphrase.c(470):未加密的RSA私钥 - 不需要密码短语

     

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

     

[Wed Dec 07 15:13:17 2011] [debug] ssl_engine_init.c(465):创建新的SSL上下文(协议:SSLv2,SSLv3,TLSv1)

     

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

     

[Wed Dec 07 15:13:17 2011] [debug] ssl_engine_init.c(795):配置RSA服务器证书

     

[Wed Dec 07 15:13:17 2011] [warn] 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 

-

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

2 个答案:

答案 0 :(得分:5)

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

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

  • 的libeay32.dll
  • ssleay32.dll

在xampp / php文件夹中使用相同名称的文件。这个问题立刻得到了解决。

答案 1 :(得分:0)

看一下这个日志条目:

  

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

如果您通过公共名称而不是localhost访问计算机,是否还会出现相同的错误?