簡體   English   中英

PHP OpenSSL - openssl_private_encrypt崩潰網頁

[英]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導致頁面超時/連接重置?

php / timeout /連接服務器重置?

使用openssl函數時,Apache服務器(xampp)崩潰

PHP意外死亡而沒有錯誤

我將不勝感激任何幫助/建議。

對於那些仍然遇到麻煩的人:

直到完全打包的xampp官方版本與下一版本的apache一起發布才能解決這個問題,我已經成功修復了這個問題,將我的Apache版本改為一個: http//www.apachelounge.com/download /這修復了錯誤,但仍允許我使用OpenSSL

此頁面上的第二個Apache 2.2.4下載專門用於修復此錯誤。 對我來說很簡單:

  • 停止Apache
  • xampp\\apache重命名為xampp\\apacheold以防它崩潰。
  • 復制在Apache24xampp\\Apache24從下載的zip
  • 將其重命名為apache
  • .bat文件從xampp\\apacheold文件夾復制到新的xampp\\apache文件夾中。
  • xampp\\apache\\conf文件夾替換為xampp\\apacheold文件夾
  • 再次啟動Apache

我希望這有助於某人。

這已在bugs.php.net上報告 如果我用xampp / php /中的相同文件替換xampp / apache / bin中的以下文件,那么它可以工作:

  • 的libeay32.dll
  • ssleay32.dll

但是, 不能使用SSL,否則Apache在啟動時會出錯。

如果可用,phpseclib使用OpenSSL進行RSA私鑰生成。 要禁用此行為,請在包含Crypt / RSA.php之后執行此操作:

define('CRYPT_RSA_MODE', CRYPT_RSA_MODE_INTERNAL);

有多大,順便說一下,你想要產生的關鍵是什么?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM