## Установка

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

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

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

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

> Модуль работает в ОС Windows, только когда системной переменной PATH доступны 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), или как C:\usr\local\ssl\openssl.cnf до PHP 7.4.0.
> При установке требуется определить, устанавливать ли файл по стандартному пути или хранить файл в другом месте и задать путь к файлу через переменные окружения, что полезно на виртуальных хостах. Обратите внимание, что путь по умолчанию разрешается переопределить в скрипте через параметр `options` функции, которой требуется этот файл.
> Предостережение

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

> C OpenSSL 3.0.0, который с PHP 8.2.0 используется в Windows по умолчанию, ряд алгоритмов устарел. Такие алгоритмы выходят из употребления, криптографическое сообщество признаёт такие алгоритмы небезопасными. Эти алгоритмы по-прежнему доступны через устаревшего поставщика — файл extras/ssl/legacy.dll; работу с поставщиком описывает раздел OpenSSL-руководства » о конфигурации поставщика.

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

Версия | Описание
--- | ---
7.4.0 | Опция конфигурации --with-openssl[=DIR] больше не принимает аргумент каталога в пользу настройки переменной PKG_CONFIG_PATH команды pkg-config в положение OpenSSL или путём указания переменных OPENSSL_LIBS и OPENSSL_CFLAGS.
7.4.0 | Конфигурационный путь библиотеки OpenSSL по умолчанию изменили с C:\usr\local\ssl на C:\Program Files\Common Files\SSL или C:\Program Files (x86)\Common Files\SSL, соответственно.

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open