Опции контекста 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 или более поздней. Используйте константу
OPENSSL_TLSEXT_SERVER_NAME
чтобы определить,
поддерживается ли SNI.