Опции контекста SSL
Опции контекста SSL — Список опций контекста SSL
Описание
Опции контекста для протоколов ssl:// и tls://
Опции
-
peer_name
string
-
Имя узла. Если его значение не задано, тогда имя подставляется
основываясь на имени хоста, использованного при открытии потока.
-
verify_peer
boolean
-
Требовать проверки используемого SSL-сертификата.
По умолчанию TRUE
.
-
verify_peer_name
boolean
-
Требовать проверки имени узла.
По умолчанию TRUE
.
-
allow_self_signed
boolean
-
Разрешить самоподписанные сертификаты. Требует
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 был
закодирован.
-
CN_match
string
-
Имя хоста (Common Name), которое мы ожидаем. PHP будет производить ограниченное сопоставление,
учитывающее символы подстановки (*,?). Если имя хоста не совпадает со строкой,
соединение будет сброшено.
Замечание:
Эта опция устарела. Начиная с PHP 5.6.0 используйте peer_name
.
-
verify_depth
integer
-
Прервать, если цепочка сертификата слишком длинная.
По умолчанию проверка отсутствует.
-
ciphers
string
-
Устанавливает список доступных алгоритмов шифрования. Формат этой строки описан в
разделе » шифры(1).
По умолчанию принимает значение DEFAULT.
-
capture_peer_cert
boolean
-
Если установлено в TRUE
, то будет создана опция контекста peer_certificate,
содержащая сертификат удаленного узла.
-
capture_peer_cert_chain
boolean
-
Если установлено в TRUE
, то будет создана опция контекста peer_certificate_chain,
содержащая цепочку сертификатов.
-
SNI_enabled
boolean
-
Если установлено в TRUE
, то будет включено указание имени сервера. Включение SNI
позволяет использовать разные сертификаты на одном и том же IP-адресе.
-
SNI_server_name
string
-
Если эта опция установлена, то это значение будет использоваться для указания имени сервера.
Если это значение не установлено, то имя сервера определяется из имени хоста, использовавшегося
при открытии потока.
Замечание:
Эта опция устарела. Начиная с PHP 5.6.0 используйте peer_name
.
-
disable_compression
boolean
-
Отключает сжатие TLS, что помогает предотвратить атаки типа CRIME.
-
peer_fingerprint
string | array
-
Прерваться, если дайджест сообщения не совпадает с указанным хешом.
Если указана строка (string), то её длина определяет какой
алгоритм хеширования будет использован: "md5" (32) или "sha1" (40).
Если указан массив (array), то ключи определяют
алгоритм хеширования, а каждое соответствующее значение
является требуемым хешом.
Примечания
Замечание:
Так как ssl:// - это низлежащий транспортный протокол для оберток
https:// и
ftps://,
то любые опции контекста, которые применяются к ssl:// будут также применяться к
https:// и ftps://.
Замечание:
Чтобы была доступна возможность указания имени сервера (SNI, Server Name Indication), PHP должен
быть скомпилирован с OpenSSL 0.9.8j или более поздней. Используйте константу
OPENSSL_TLSEXT_SERVER_NAME
чтобы определить,
поддерживается ли SNI.