PHP 8.4: OpenSSL: минимальная требуемая версия увеличена до 1.1.1

Источник: «PHP 8.4: OpenSSL: Minimum required OpenSSL version increased to 1.1.1»
Расширение PHP OpenSSL предоставляет функции шифрования, аутентификации, обмена ключами, хэширования паролей и общего хэширования в PHP. Расширение OpenSSL использует библиотеку OpenSSL для обеспечения этой функциональности.

В PHP 8.4 и более поздних версиях минимальные требования для сборки расширения OpenSSL увеличены с 1.0.1 до 1.1.1. Расширение по-прежнему совместимо с OpenSSL.

Обратите внимание, что OpenSSL 1.1.1 (выпущен в сентябре 2018 года) достиг своего End-Of-Life. Рекомендуется использовать более свежую версию или полагаться на источник программного обеспечения, который поддерживает бэкпорт патчей безопасности для старых версий (например, Ubuntu LTS или RHEL/Rocky/EL). Главным нововведением в OpenSSL 1.1 является поддержка TLS 1.3. С этим изменением расширение PHP OpenSSL может с уверенностью предположить, что поддержка TLS 1.3 будет доступна на стороне клиента.

Причиной смены версии является то, что некоторые операционные системы Linux к моменту выхода PHP 8.4 достигнут даты окончания срока службы, и их следующие версии будут содержать в своих репозиториях по умолчанию как минимум OpenSSL 1.1.1 и более поздние версии.

Название дистрибутиваВерсия OpenSSLДата EOL
Debian buster1.1.1nИюнь 2024
Ubuntu 20.041.1.1fАпрель 2025
RHEL/CentOS 71.0.2Июнь 2024
RHEL/Rocky/EL 81.1.2Июнь 2024
Fedora 383.0.9Июль 2025

Большинство операционных систем уже предоставляют OpenSSL версии 1.1.1 или более поздней. Как показано в таблице выше, это касается только RHEL/Cent OS 7. Даже на RHEL/CentOS 7 можно скомпилировать PHP, скомпилировав расширение с более новой версией пакета openssl-devel.

Изменения в сборке

В PHP 8.3 и более ранних версиях расширение OpenSSL имело флаг компиляции --with-kerberos для обеспечения поддержки наборов шифров Kerberos в TLS.

Поддержка набора шифров Kerberos была удалена в OpenSSL 1.1.0, и расширение PHP OpenSSL больше не поддерживает сборку расширения с поддержкой Kerberos.

В PHP 8.4 этот флаг удалён, и при передаче его в скрипт ./configure теперь в конце выдаётся предупреждение, что этот флаг не поддерживается.

Влияние на обратную совместимость

Это изменение увеличивает минимальную поддерживаемую версию библиотеки OpenSSL для расширения PHP OpenSSL до 1.1.1.

За исключением серии RHEL/CentOS 7, операционная система, скорее всего, предоставляет OpenSSL версии 1.1.1 или более позднюю, и поэтому данное изменение не окажет никакого влияния. RHEL/CentOS 7 достигнет End-Of-Life на момент выхода PHP 8.4.


Дополнительные материалы

Предыдущая Статья

Husky: Форматирование, линтинг и тестирование при коммите или пуше

Следующая Статья

Методы авторизации и валидации контроллеров в Laravel 11