2013-05-18 122 views
1

這已報告在bugs.php.net。如果我更換的libeay32.dll和xampp/apache/bin ssleay32.dllxampp/php/那麼它的工作原理相同的文件,但我不能使用SSLPHP OpenSSL - openssl_private_encrypt崩潰網頁

我需要使用SSL,有沒有人能解決這個問題?


我對XAMPP(1.8.1)使用OpenSSL的PHP(5.4.7)進行加密,解密,等我也使用本地主機上的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 causing Page Timeout/Connection Reset?

php/timeout/connection to server reset?

Apache server (xampp) crashes when using openssl function

PHP dies unexpectedly without error

我希望得到任何幫助/建議。

+0

在哪裏崩潰? – doptimusprime

+0

如果我不使用'openssl_private_encrypt()'方法,那麼它運行良好。 – user427969

+0

它似乎沒有得到私鑰。 – doptimusprime

回答

1

這已經報道bugs.php.net。如果我在XAMPP與相同的文件替換XAMPP /阿帕奇/斌下列文件/ PHP/那麼它的工作原理:

  • 的libeay32.dll
  • ssleay32.dll

,但SSL不能使用否則Apache的啓動時給出了錯誤。

+0

有沒有解決這個問題的方法,但不強制我禁用SSL?我需要兩個。 – nathanjosiah

+0

@nathanjosiah對不起,我找不到任何解決方案。我可以使其工作的唯一方法是禁用SSL。 – user427969

+0

我已經發布了一個新的答案,解決了這兩個問題 – nathanjosiah

0

phpseclib使用OpenSSL(如果可用)生成RSA私鑰。要禁用此行爲,做到這一點後,地穴/ RSA.php已被列入:

define('CRYPT_RSA_MODE', CRYPT_RSA_MODE_INTERNAL); 

多大,順便說一句,是你想生成密鑰?

1

對於那些仍然有問題:

直到XAMPP的完全封裝的正式版本發佈與Apache的下一個版本,應該可以解決這個錯誤,我已經成功地通過改變我的Apache的版本修復了這個問題到這裏找到的一個:http://www.apachelounge.com/download/這修復了這個錯誤,但仍然允許我使用OpenSSL

此頁面上的第二個Apache 2.2.4下載專門用於修復此錯誤。對我來說很容易,因爲:

  • 停止Apache
  • 重命名xampp\apachexampp\apacheold以防萬一它打破了。
  • 複製的Apache24xampp\Apache24從下載的zip
  • 重新命名爲apache
  • xampp\apacheold文件夾中的文件.bat複製到新xampp\apache文件夾。
  • xampp\apacheold
  • 啓動Apache取代了xampp\apache\conf文件夾與一個又

我希望這可以幫助別人。