SSL 上下文選項(xiàng)
SSL 上下文選項(xiàng) — SSL 上下文選項(xiàng)清單
說明
ssl://
和 tls://
傳輸協(xié)議上下文選項(xiàng)清單。
可選項(xiàng)
-
peer_name
string
-
要連接的服務(wù)器名稱。如果未設(shè)置,那么服務(wù)器名稱將根據(jù)打開 SSL 流的主機(jī)名稱猜測(cè)得出。
-
verify_peer
bool
-
是否需要驗(yàn)證 SSL 證書。
默認(rèn)值為 true
。
-
verify_peer_name
bool
-
是否需要驗(yàn)證 peer name。
默認(rèn)值為 true
.
-
allow_self_signed
bool
-
是否允許自簽名證書。需要配合
verify_peer
參數(shù)使用(注:當(dāng) verify_peer 參數(shù)為 true 時(shí)才會(huì)根據(jù) allow_self_signed 參數(shù)值來決定是否允許自簽名證書)。
默認(rèn)值為 false
-
cafile
string
-
當(dāng)設(shè)置 verify_peer
為 true 時(shí),
用來驗(yàn)證遠(yuǎn)端證書所用到的 CA 證書。
本選項(xiàng)值為 CA 證書在本地文件系統(tǒng)的全路徑及文件名。
-
capath
string
-
如果未設(shè)置 cafile
,或者 cafile
所指的文件不存在時(shí),
會(huì)在 capath
所指定的目錄搜索適用的證書。
該目錄必須是已經(jīng)經(jīng)過哈希處理的證書目錄。
(注:所謂 hashed certificate 目錄是指使用類似 c_rehash 命令將目錄中的 .pem 和 .crt 文件掃描并提取哈希碼,然后根據(jù)此哈希碼創(chuàng)建文件鏈接,以便于快速查找證書)
-
local_cert
string
-
本地證書路徑。
必須是 PEM 格式,并且包含本地的證書及私鑰。
也可以包含證書頒發(fā)者證書鏈。
也可以通過 local_pk
指定包含私鑰的獨(dú)立文件。
-
local_pk
string
-
如果使用獨(dú)立的文件來存儲(chǔ)證書(local_cert
)和私鑰,
那么使用此選項(xiàng)來指明私鑰文件的路徑。
-
passphrase
string
-
local_cert
文件的密碼。
-
verify_depth
int
-
如果證書鏈條層次太深,超過了本選項(xiàng)的設(shè)定值,則終止驗(yàn)證。
默認(rèn)情況下不限制證書鏈條層次深度。
-
ciphers
string
-
設(shè)置可用的密碼列表。
可用的值參見: ? ciphers(1)。
默認(rèn)值為 DEFAULT
.
-
capture_peer_cert
bool
-
如果設(shè)置為 true
將會(huì)在上下文中創(chuàng)建 peer_certificate
選項(xiàng),
該選項(xiàng)中包含遠(yuǎn)端證書。
-
capture_peer_cert_chain
bool
-
如果設(shè)置為 true
將會(huì)在上下文中創(chuàng)建 peer_certificate_chain
選項(xiàng),
該選項(xiàng)中包含遠(yuǎn)端證書鏈條。
-
SNI_enabled
bool
-
設(shè)置為 true
將啟用服務(wù)器名稱指示(server name indication)。
啟用 SNI 將允許同一 IP 地址使用多個(gè)證書。
-
disable_compression
bool
-
如果設(shè)置,則禁用 TLS 壓縮,有助于減輕惡意攻擊。
-
peer_fingerprint
string | array
-
當(dāng)遠(yuǎn)程服務(wù)器證書的摘要和指定的散列值不相同的時(shí)候,
終止操作。
當(dāng)使用 string 時(shí),
會(huì)根據(jù)字符串的長(zhǎng)度來檢測(cè)所使用的散列算法:“md5”(32 字節(jié))還是“sha1”(40 字節(jié))。
當(dāng)使用 array 時(shí),
數(shù)組的鍵表示散列算法名稱,其對(duì)應(yīng)的值是預(yù)期的摘要值。
-
security_level
int
-
設(shè)置安全級(jí)別。如果未指定,則使用庫默認(rèn)安全級(jí)別。
安全級(jí)別說明請(qǐng)參考 ? SSL_CTX_get_security_level(3)。
從 PHP 7.2.0 和 OpenSSL 1.1.0 開始可用。
注釋
注意:
因?yàn)?ssl://
是
https://
和
ftps://
的底層傳輸協(xié)議,
所以,ssl://
的上下文選項(xiàng)也同樣適用于
https://
和 ftps://
上下文。
注意:
PHP 必須聯(lián)合 OpenSSL 0.9.8j 或以上版本編譯才可以支持 SNI,
同時(shí)也支持使用 OPENSSL_TLSEXT_SERVER_NAME
來探測(cè) SNI 服務(wù)器名稱。