SSL 上下文選項清單

SSL 上下文選項

SSL 上下文選項SSL 上下文選項清單

說明

ssl://tls:// 傳輸協議上下文選項清單。

可選項

peer_name string

要連線的伺服器名稱。如果未設定,那麼伺服器名稱將根據打開 SSL 流的主機名稱猜測得出。

verify_peer bool

是否需要驗證 SSL 證書。

預設值為 true

verify_peer_name bool

是否需要驗證 peer name。

預設值為 true.

allow_self_signed bool

是否允許自簽名證書。需要配合 verify_peer 參數使用(註:當 verify_peer 參數為 true 時才會根據 allow_self_signed 參數值來決定是否允許自簽名證書)。

預設值為 false

cafile string

當設定 verify_peer 為 true 時, 用來驗證遠端證書所用到的 CA 證書。 本選項值為 CA 證書在本地檔案系統的全路徑及檔名。

capath string

如果未設定 cafile,或者 cafile 所指的檔案不存在時, 會在 capath 所指定的目錄搜索適用的證書。 該目錄必須是已經經過雜湊處理的證書目錄。 (註:所謂 hashed certificate 目錄是指使用類似 c_rehash 命令將目錄中的 .pem 和 .crt 檔案掃瞄並提取雜湊碼,然後根據此雜湊碼建立檔案鏈接,以便於快速查詢證書)

local_cert string

本地證書路徑。 必須是 PEM 格式,並且包含本地的證書及私鑰。 也可以包含證書頒發者證書鏈。 也可以通過 local_pk 指定包含私鑰的獨立檔案。

local_pk string

如果使用獨立的檔案來儲存證書(local_cert)和私鑰, 那麼使用此選項來指明私鑰檔案的路徑。

passphrase string

local_cert 檔案的密碼。

verify_depth int

如果證書鏈條層次太深,超過了本選項的設定值,則終止驗證。

預設情況下不限制證書鏈條層次深度。

ciphers string

設定可用的密碼列表。 可用的值參見: » ciphers(1)

預設值為 DEFAULT.

capture_peer_cert bool

如果設定為 true 將會在上下文中建立 peer_certificate 選項, 該選項中包含遠端證書。

capture_peer_cert_chain bool

如果設定為 true 將會在上下文中建立 peer_certificate_chain 選項, 該選項中包含遠端證書鏈條。

SNI_enabled bool

設定為 true 將啟用伺服器名稱指示(server name indication)。 啟用 SNI 將允許同一 IP 地址使用多個證書。

disable_compression bool

如果設定,則禁用 TLS 壓縮,有助於減輕惡意攻擊。

peer_fingerprint string | array

當遠端伺服器證書的摘要和指定的雜湊值不相同的時候, 終止操作。

當使用 string 時, 會根據字串的長度來檢測所使用的雜湊演算法:「md5」(32 位元組)還是「sha1」(40 位元組)。

當使用 array 時, 陣列的鍵表示雜湊演算法名稱,其對應的值是預期的摘要值。

security_level int

設定安全級別。如果未指定,則使用庫預設安全級別。 安全級別說明請參考 » SSL_CTX_get_security_level(3)

從 PHP 7.2.0 和 OpenSSL 1.1.0 開始可用。

更新日誌

版本 說明
7.2.0 新增了 security_levels。 需要 OpenSSL >= 1.1.0。

註釋

注意: 因為 ssl://https://ftps:// 的底層傳輸協議, 所以,ssl:// 的上下文選項也同樣適用於 https://ftps:// 上下文。

注意: PHP 必須聯合 OpenSSL 0.9.8j 或以上版本編譯才可以支援 SNI, 同時也支援使用 OPENSSL_TLSEXT_SERVER_NAME 來探測 SNI 伺服器名稱。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *