Установка

Для поддержки OpenSSL в PHP вам необходимо скомпилировать его с опцией --with-openssl[=DIR].

Также библиотека OpenSSL имеет дополнительные требования для нормальной работы во время исполнения. Самое главное, OpenSSL требуется доступ к генераторам случайных и псевдослучайных чисел; на большинстве систем Unix/Linux, это означает доступ к устройствам /dev/urandom или /dev/random.

Начиная с PHP 5.6.3, доступна опция конфигурации --with-system-ciphers, которая заставляет PHP использовать системный список шифров вместо жестко заданного по умолчанию.

Замечание: Замечания для пользователей Win32

Для работы этого расширения системной переменной Windows PATHдолжны быть доступны DLL-файлы. Чтобы узнать как этого достичь, обратитесь к разделу FAQ "Как добавить мою директорию с PHP в переменную Windows PATH". Хотя копирование DLL-файлов из директории PHP в системную папку Windows также решает проблему (потому что системная директория по умолчанию находится в переменной PATH), это не рекомендуется. Этому расширению требуются следующие файлы в переменной PATH: libeay32.dll, либо, начиная с OpenSSL 1.1, libcrypto-*.dll.

Дополнительно, если вы собираетесь использовать функции генерации ключей и подписи сертификатов, вам придется установить корректный файл openssl.cnf в вашей системе. Мы включили демонстрационный конфигурационный файл в бинарную поставку под win32. Он лежит в директории extras/openssl.

PHP будет искать openssl.cnf, используя следующую логику:

  • Переменная окружения OPENSSL_CONF. Если установлена, то должна содержать путь (включая имя файла) до конфигурационного файла.
  • переменная окружения SSLEAY_CONF. Если установлена, то должна содержать путь (включая имя файла) до конфигурационного файла.
  • Файл openssl.cnf будет искаться по стандартному пути для сертификатов, заданному при компиляции DLL. Обычно он задан как C:\Program Files\Common Files\SSL\openssl.cnf (x64) или C:\Program Files (x86)\Common Files\SSL\openssl.cnf (x86), или до PHP 7.4.0, как C:\usr\local\ssl\openssl.cnf.

При установке вы должны определить, установить ли файл по стандартному пути или хранить его в другом месте и задать путь к нему через переменные окружения, что полезно при использовании виртуальных хостов. Обратите внимание, что путь по умолчанию можно переопределить в скрипте используя параметр configargs функции, которой требуется этот файл.
Предостережение

Убедитесь, что непривилегированным пользователям не разрешено изменять openssl.cnf.

Список изменений

Версия Описание
7.4.0 Конфигурационный путь OpenSSL был изменен с C:\usr\local\ssl на C:\Program Files\Common Files\SSL или C:\Program Files (x86)\Common Files\SSL, соответственно.