DirectAdmin - это удобная панель управления хостингом. Легкость в настройке, легкость в использовании!
ДиректАдмин - это самая быстрая и нересурсоемкая панель из всех существующих коммерческих панелей управления для хостинга. Бесплатные и регулярные обновления версии панели DirectAdmin на протяжении всего времени ее использования заметно выделяют ее среди других.



PHP 5.6: SSL operation failed with code 1

12.12.15 11:22

Было замечено, что я ряде случаев после обновления PHP до версии 5.6 возникают трудности с подключением к серверам средствами PHP, включая почтовые сервисы, HTTPS-сайты. Одной из возможных причин может быть ошибка при проверки валидности сертификатов SSL/TLS. При разборе можно натолкнуться на сообщение подобное одному из следующих:

SSL operation failed with code 1. OpenSSL Error messages: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed

или

- fsockopen(): Failed to enable crypto

или

- fsockopen(): unable to connect to ssl://xx.xx.xx:443 (Unknown error)

Если ошибка одинаково возникает при подключении к хостам, которые 100% используют достоверные SSL сертификаты, и имя хоста для подключения совпадает с именем в таком сертификате, то проблема скорее всего кроется в том, что для PHP не указан или указан некорректно параметр openssl.cafile.

Из документации PHP 5.6

Все шифруемые клиентские потоки теперь по умолчанию включают проверку пиров. По умолчанию используется OpenSSL CA пакет для проверки сертификата пира. В большинстве случаев не требуется ничего делать для соединения с серверами с правильным SSL сертификатом, так как обычно OpenSSL уже настроен для использования хороших CA пакетов.

Стандартный CA пакет может быть переопределен глобально с помощью установки или openssl.cafile или openssl.capath строк конфигурации, или же на уровне каждого запроса используя опции контекста cafile или capath.

Хотя это и не рекомендуется, но можно отклчить проверку сертификата пира для запроса, установив verify_peer опцию контекста в FALSE, и можно отключить проверку имени пира, установив verify_peer_name в FALSE.

PHP: OpenSSL changes in PHP 5.6.x - Manual

Проверяем настройки

И так проверяем настройки:

# php -r 'print_r(openssl_get_cert_locations());' | grep '\[default_cert_file\]' | awk '{print $3}'

Результатом должна быть одна строка, указывающая на CA пакет (cafile):

/etc/pki/tls/cert.pem

Вариации

/usr/ssl/cert.pem
/usr/local/etc/ssl/cert.pem

В зависимости от используемой ОС и сборки PHP путь может отличаться. Главное здесь - убедиться, что указанный файл существует, и что он не пустой и соддержит корректную информацию.

Если файла нет или он поврежден, то восстановить его можно на CentOS с помощью (пере-)установки ca-certificates:

# yum reinstall ca-certificates

FreeBSD с пакетом security/ca_root_nss

# pkg install security/ca_root_nss

Или же скачать CA пакет целиком по ссылке http://curl.haxx.se/ca/cacert.pem

# wget http://curl.haxx.se/ca/cacert.pem -O \
`php -r 'print_r(openssl_get_cert_locations());' | grep '\[default_cert_file\]' | awk '{print $3}'`

Удачи!





Рубрики: Решение проблем PHP SSL


« Поддержка XFS дисковых квот в CentOS 7 и Directadmin  | В начало |  Как создать дампы всех БД MySQL на сервере с Directadmin »



Вам нужна помощь или консультация по данному руководству?! Задайте свой вопрос на форуме. Вам нужен профессионал?! Воспользуйтесь услугами системного администратора для работ по вашему серверу. Мы поможем вам с переездом, настройкой, оптимизацией сервисов, равно как и с другими вопросами по части Linux/Unix.







   Все права на панель управления Directadmin принадлежат разработчику © DirectAdmin, JBMC Software, Canada
   К вашим услугам плагины для Директадмин - панели управления хостингом
   Лучшее предложение по установке, поддержке Directadmin на CentOS/RedHat, Debian/Ubuntu, FreeBSD.
   Профессиональное абонентское обслуживание серверов: выделенных и виртуальных на базе Linux/Unix.
   Услуги системного администратора по настройке WEB сервера Apache (NGINX), DNS службы, POP3 (IMAP) и SMTP, FTP.
 Copyright, 2019 © DAHELP.RU, all rights reserved.
Работает на Amiro CMS - Free