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