PHP OpenSSL – openssl_private_encrypt разбивает веб-страницу

Об этом сообщается на bugs.php.net . Если я заменю libeay32.dll и ssleay32.dll в xampp/apache/bin с теми же файлами в xampp/php/ то он работает, но я НЕ МОГУ использовать SSL

Мне нужно использовать SSL, может ли кто-нибудь разрешить это?


Я использую библиотеку OpenSSL в PHP (5.4.7) для XAMPP (1.8.1) для шифрования, дешифрования и т. Д. Я также использую SSL на localhost.

Я могу создать пару private-public key, используя 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 / соединение с перезагрузкой сервера?

Сервер Apache (xampp) сбой при использовании функции openssl

PHP неожиданно умирает без ошибок

Я был бы признателен за любую помощь / предложение.

Об этом сообщается на bugs.php.net . Если я заменю следующие файлы в xampp / apache / bin с теми же файлами в xampp / php /, то он работает:

  • libeay32.dll
  • ssleay32.dll

НО, SSL нельзя использовать, иначе Apache выдаст ошибку при запуске.

Для тех из вас, у вас все еще есть проблемы:

Пока не будет выпущена полностью упакованная официальная сборка xampp со следующей версией apache, которая должна исправить эту ошибку, я успешно исправил эту проблему, изменив мою версию Apache на найденную здесь: http://www.apachelounge.com/download / Это исправляет ошибку, но все же позволяет мне использовать OpenSSL

Вторая версия Apache 2.2.4 на этой странице была создана специально для исправления этой ошибки. Для меня это было легко:

  • Остановка Apache
  • Переименование xampp\apache в xampp\apacheold всякий случай, если оно сломается.
  • Скопировано в Apache24 в xampp\Apache24 из загруженного почтового индекса
  • Переименовано в apache
  • Скопировал файлы .bat из xampp\apacheold в новую xampp\apache .
  • Заменили xampp\apache\conf с помощью xampp\apacheold
  • Запустите Apache снова

Надеюсь, это помогает кому-то.

phpseclib использует OpenSSL, если он доступен, для генерации секретного ключа RSA. Чтобы отключить это поведение, сделайте это после включения Crypt / RSA.php:

 define('CRYPT_RSA_MODE', CRYPT_RSA_MODE_INTERNAL); 

Насколько большой, кстати, ключ, который вы пытаетесь создать?