Опции 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.
Примечания
Замечание:
Поскольку ssl://
— нижележащий транспортный протокол для обёрток
https://
и ftps://
,
любые опции контекста, которые применяются к транспорту ssl://
, будут также применяться
к обёрткам https://
и ftps://
.
Замечание:
Чтобы указание имени сервера (SNI, Server Name Indication) было доступно, требуется
скомпилировать PHP с OpenSSL 0.9.8j или более поздней. Чтобы определить,
поддерживается ли SNI, указывают константу
OPENSSL_TLSEXT_SERVER_NAME
.