Опции контекста 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_levels. Требуется OpenSSL >= 1.1.0.

Примечания

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

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