Соединение fsockopen ssl не работает

Вопрос: Я пытаюсь использовать php-функцию fsockopen на SMTP-сервере, используя ssl на порту 465 на моем локальном сервере с apache. Он хорошо работает с командной строкой php, но при запуске скрипта в моем браузере я получаю сообщение об ошибке SSL. php.ini extension=php_openssl.dll line is not commented phpinfo через Apache Loaded Configuration File : D:localhostphp-5.4.11php.ini openssl OpenSSL

Вопрос:

Я пытаюсь использовать php-функцию fsockopen на SMTP-сервере, используя ssl на порту 465 на моем локальном сервере с apache. Он хорошо работает с командной строкой php, но при запуске скрипта в моем браузере я получаю сообщение об ошибке SSL.

php.ini

extension=php_openssl.dll line is not commented

phpinfo через Apache

Loaded Configuration File : D:localhostphp-5.4.11php.ini openssl OpenSSL support enabled OpenSSL Library Version OpenSSL 0.9.8x 10 May 2012 OpenSSL Header Version OpenSSL 0.9.8x 10 May 2012

phpinfo с командной строкой

Loaded Configuration File => D:localhostphp-5.4.11php.ini openssl OpenSSL support => enabled OpenSSL Library Version => OpenSSL 0.9.8x 10 May 2012 OpenSSL Header Version => OpenSSL 0.9.8x 10 May 2012

Мой скрипт

$smtp = fsockopen(‘ssl://in.mailjet.com’, 465, $errno, $errstr, 30); $response = fgets($smtp, 4096); if(empty($smtp)){ echo $response; return false; } echo $response . ‘<br/>’; fclose($smtp);

Вывод под apache

Warning: fsockopen(): SSL: crypto enabling timeout in XXX on line 2 Warning: fsockopen(): Failed to enable crypto in XXX on line 2 Warning: fsockopen(): unable to connect to ssl://in.mailjet.com:465 (Unknown error) in XXX on line 2

Выход с командной строкой

220 srv12.mailjet.com ESMTP Mailjet <br/>

Платформа: я использую PHP 5.4.11/Apache 2.2.22 (Win32) для Windows 8 64

– Изменить – я попытался использовать TLS, как было предложено:

$smtp = fsockopen(‘tls://in.mailjet.com’, 567, $errno, $errstr, 30);

И я получаю

E_WARNING: fsockopen(): in XXX on line XXX

Сообщение об ошибке пустое и $errno = (int) 0 и $errstr = (string) »

Лучший ответ:

Я обновил версию Apache с 2.2 до 2.4 и теперь работает.

Я следил за этим преподавателем: http://lifeofageekadmin.com/how-install-apache-2-4-php-5-4-and-mysql-5-5-21-on-windows-7/, чтобы получить новой версии Apache.

Ответ №1

У меня была аналогичная проблема с контактной формой, которая использует captcha, получив ошибку

fsockopen(): unable to connect to ssl://mail.google.com:443

Это на FreeBSD vm, с установленной Joomla.

Поиск, я нашел http://php.net/manual/en/function.fsockopen.php, который упоминал проверку сертификата.

Установлен порт FreeBSD ca_root_nss который включает проверку сертификата для корневых сертификатов из органов сертификации, включенных в библиотеку NSS Mozilla.

Оцените статью
Добавить комментарий