[英]PHP OpenSSL - openssl_private_encrypt crashes webpage
这已在bugs.php.net上报告过 。 如果我用xampp/php/
的相同文件替换xampp/apache/bin
libeay32.dll和ssleay32.dll ,那么它可以工作,但我不能使用SSL
我需要使用SSL,有没有人能够解决这个问题?
我在XAMPP (1.8.1)上使用PHP (5.4.7)中的OpenSSL库进行加密,解密等。我也在localhost上使用SSL。
我可以使用openssl_pkey_new()
方法创建私钥 - 公钥对,并生成证书。
但是当我尝试访问我的根证书(使用上述功能创建)时, 网页崩溃 :
$root_private_key = openssl_get_privatekey(file_get_contents($path), $pass);
echo "KEY: " . $root_private_key; // KEY: Resource id #11
openssl_private_encrypt($plaintext, $encrypted_data, $root_private_key);
我甚至尝试使用phpseclib库,但也做同样的事情。
我也试过设置ini_set('max_execution_time', 0);
我检查了PHP日志 ,它是空的,在Apache日志中找到以下内容:
[mpm_winnt:notice] [pid 3312:tid 484] AH00428: Parent: child process exited with status 3221225477 -- Restarting.
[ssl:warn] [pid 3312:tid 484] AH01873: Init: Session Cache is not configured [hint: SSLSessionCache]
[mpm_winnt:notice] [pid 3312:tid 484] AH00455: Apache/2.4.3 (Win32) OpenSSL/1.0.1c PHP/5.4.7 configured -- resuming normal operations
[mpm_winnt:notice] [pid 3312:tid 484] AH00456: Server built: Aug 18 2012 12:41:37
[core:notice] [pid 3312:tid 484] AH00094: Command line: 'apache\\bin\\httpd.exe -d C:/xampp/apache'
[mpm_winnt:notice] [pid 3312:tid 484] AH00418: Parent: Created child process 1520
AH00548: NameVirtualHost has no effect and will be removed in the next release C:/xampp/apache/conf/extra/httpd-vhosts.conf:19
[ssl:warn] [pid 1520:tid 496] AH01873: Init: Session Cache is not configured [hint: SSLSessionCache]
[mpm_winnt:notice] [pid 1520:tid 496] AH00354: Child: Starting 150 worker threads.
我试过以下但没有一个帮助:
PHP openssl_public_encrypt导致页面超时/连接重置?
使用openssl函数时,Apache服务器(xampp)崩溃
我将不胜感激任何帮助/建议。
对于那些仍然遇到麻烦的人:
直到完全打包的xampp官方版本与下一版本的apache一起发布才能解决这个问题,我已经成功修复了这个问题,将我的Apache版本改为一个: http : //www.apachelounge.com/download /这修复了错误,但仍允许我使用OpenSSL
此页面上的第二个Apache 2.2.4下载专门用于修复此错误。 对我来说很简单:
xampp\\apache
重命名为xampp\\apacheold
以防它崩溃。 Apache24
到xampp\\Apache24
从下载的zip apache
.bat
文件从xampp\\apacheold
文件夹复制到新的xampp\\apache
文件夹中。 xampp\\apache\\conf
文件夹替换为xampp\\apacheold
文件夹 我希望这有助于某人。
这已在bugs.php.net上报告过 。 如果我用xampp / php /中的相同文件替换xampp / apache / bin中的以下文件,那么它可以工作:
但是, 不能使用SSL,否则Apache在启动时会出错。
如果可用,phpseclib使用OpenSSL进行RSA私钥生成。 要禁用此行为,请在包含Crypt / RSA.php之后执行此操作:
define('CRYPT_RSA_MODE', CRYPT_RSA_MODE_INTERNAL);
有多大,顺便说一下,你想要产生的关键是什么?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.