Установка

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

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

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

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

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

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

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.
При установке вы должны определить, установить ли файл по стандартному пути или хранить его в другом месте и задать путь к нему через переменные окружения, что полезно при использовании виртуальных хостов. Обратите внимание, что путь по умолчанию можно переопределить в скрипте используя параметр options функции, которой требуется этот файл.
Предостережение

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

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

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