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