[英]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.