Опции SSL-контекста

Опции SSL-контекстаСписок опций SSL-контекста

Описание

Опции контекста для протоколов ssl:// и tls://.

Опции

peer_name string

Имя узла. Если значение параметра не задали, имя подставляется на основе имени хоста, который использовался при открытии потока.

verify_peer bool

Требовать проверки SSL-сертификата.

По умолчанию true.

verify_peer_name bool

Требовать проверки имени узла.

По умолчанию true.

allow_self_signed bool

Разрешить самоподписанные сертификаты. Требуется опция verify_peer.

По умолчанию false

cafile string

Расположение файла центра сертификации в локальной файловой системе, который следует использовать с опцией контекста verify_peer для проверки подлинности удалённого узла.

capath string

Если опцию cafile не определили или функция не смогла найти сертификат, выполняется поиск в директории, которую указали в опции capath. Путь capath должен указывать на корректную директорию, которая содержит сертификаты, имена которых — хеш от поля subject, указанного в сертификате.

local_cert string

Путь к локальному сертификату в файловой системе. Требуется файл, который закодировали в формате PEM, который содержит ваш сертификат и закрытый ключ. Файл дополнительно может содержать открытый ключ эмитента. Закрытый ключ также может содержаться в отдельном файле, который задали опцией local_pk.

local_pk string

Путь к локальному файлу с приватным ключом в случае отдельных файлов сертификата (local_cert) и приватного ключа.

passphrase string

Идентификационная фраза, с которой закодировали ваш файл local_cert.

verify_depth int

Прервать, если цепочка сертификата слишком длинная.

По умолчанию проверка отсутствует.

ciphers string

Устанавливает список доступных алгоритмов шифрования. Формат этой строки описывает страница » шифры(1).

По умолчанию принимает значение DEFAULT.

capture_peer_cert bool

Если для опции установили значение true, будет создана опция контекста peer_certificate, которая содержит сертификат удалённого узла.

capture_peer_cert_chain bool

Если для опции установили значение true, будет создана опция контекста peer_certificate_chain, которая содержит цепочку сертификатов.

SNI_enabled bool

Если для опции установили значение true, включится индикация имени сервера. Включение SNI разрешает использовать разные сертификаты на одном IP-адресе.

disable_compression bool

Отключает TLS-сжатие, что помогает предотвратить атаки типа CRIME.

peer_fingerprint string | array

Прерваться, если дайджест сообщения не совпадает с указанным хешем.

Если указали строку (string), её длина определяет, какой алгоритм хеширования будет использоваться: «md5» (32) или «sha1» (40).

Если указали массив (array), ключи определяют алгоритм хеширования, а каждое соответствующее значение представляет собой требуемым хешем.

security_level int

Устанавливает уровень безопасности. Если не указали, используется стандартный уровень безопасности, указанный в библиотеке. Уровни безопасности описывает страница » SSL_CTX_get_security_level(3).

Доступна с PHP 7.2.0 и OpenSSL 1.1.0.

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

Версия Описание
7.2.0 Добавили опцию security_level. Требуется OpenSSL >= 1.1.0.

Примечания

Замечание: Поскольку ssl:// — нижележащий транспортный протокол для обёрток https:// и ftps://, любые опции контекста, которые применяются к транспорту ssl://, будут также применяться к обёрткам https:// и ftps://.

Замечание: Чтобы указание имени сервера (SNI, Server Name Indication) было доступно, требуется скомпилировать PHP с OpenSSL 0.9.8j или более поздней. Чтобы определить, поддерживается ли SNI, указывают константу OPENSSL_TLSEXT_SERVER_NAME.