Установка
Для поддержки 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, соответственно. |