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