Secure Sockets Layer (SSL) 指引
Secure Sockets Layer (SSL) 指引是在 IBM® HTTP Server中控制 SSL 特性的配置參數。
You can specify many Secure Sockets Layer (SSL) directives in IBM HTTP Server either within a <VirtualHost> section, or globally, outside of any <VirtualHost> section.
當使用名稱型 SSL 虛擬主機時,只會從每一個唯一 IP:PORT 組合的預設 (第一個列出) 虛擬主機中取得影響 SSL 信號交換的配置指引。
在這兩個環境定義中有效的大部分指引會從廣域配置複製或合併至虛擬主機配置,這表示它們不需要在多個啟用 SSL 的虛擬主機內重複。 值得注意的異常狀況是 OCSP 相關指引及 SSLProtocolDisable。 While SSLCipherSpec is merged, it is recommended to specify this directive either globally or within the <VirtualHost> section and not both at the same time. When specified globally and within a <VirtualHost> section, each is evaluated relative to the defaults then the union of the result is enabled. 這可能有不直覺的結果。
For SSL directives specified in a directory scope (<Location>, <Directory>, or htaccess), configurations sections from a more general scope are merged into configuration sections with a more specific scope. 此種類中的部分指引範例為 SSLCipherBan、 SSLCipherRequire、 SSLClientAuthRequire及 SSLVersion。 這些指引比先前的指引更不常使用。
除了廣域指定的 keyfile 指引之外,請盡可能避免合併配置。 如果有任何配置依賴合併多個配置範圍,請務必測試結果。
- SSLOCSPResponderURL
- SSLOCSPEnable
- SSLOCSPCacheSize
- Keyfile 指引
- SSLAcceleratorDisable 指引
- SSLAllowNonCriticalBasicConstraints 指引
- SSLCacheDisable 指引
- SSLCacheEnable 指引
- SSLCacheError日誌指引
- SSLCachePath 指引
- SSLCachePort檔名指引
- SSLCacheTraceLog 指引
- SSLCheckCertificate有效期限
- SSLCipherBan 指引
- SSLCipherRequire 指引
- SSLCipherSpec 指引
- SSLClientAuth 指引
- SSLClientAuthGroup 指引
- SSLClientAuthRequire 指引
- SSLClientAuthVerify 指引
- SSLCRLHostname 指引(已淘汰)
- SSLCRLPort 指引(已淘汰)
- SSLCRLUserID 指引(已淘汰)
- SSLDisable 指引
- SSLEnable 指引
- SSLFakeBasicAuth 指引
- SSLFIPSDisable 指引
- SSLFIPSEnable 指引
- SSLInsecureRenegotiation 指引
- SSLMinimumRSAKeySize 指引
- SSLPKCSDriver 指引
- SSLProtocolDisable 指引
- SSLProtocolEnable 指引
- SSLProxyEngine 指引
- SSLRenegotiation 指引
- SSLServerCert 指引
- SSLStashfile 指引
- SSLSuiteBMode
- SSLSupportedCurves
- SSLTrace 指引
- SSLUnknownRevocation狀態
- SSLV2Timeout 指引
- SSLV3Timeout 指引
- SSLVersion 指引
SSLOCSPResponderURL
名稱 | 說明 |
---|---|
語法 |
|
範圍 | 虛擬主機 |
預設值 | 已停用 |
模組 | mod_ibm_ssl |
配置檔中的多個實例 | 每部虛擬主機各一個 |
值 | 指向 OCSP 回應端的完整 URL,例如 http://hostname:2560/。 |
即使已配置 CRL 檢查,還是會先執行 OCSP 檢查,再執行任何 CRL 檢查。 唯有當 CRL 不明或不確定時,才會進行 CRL 檢查。
如果設定 SSLOCSPResponderURL ,當提供 SSL 用戶端憑證時, IBM HTTP Server 會使用所提供的 URL 來檢查憑證撤銷狀態。
SSLOCSPEnable
名稱 | 說明 |
---|---|
語法 |
|
範圍 | 虛擬主機 |
預設值 | 已停用 |
模組 | mod_ibm_ssl |
配置檔中的多個實例 | 針對每部虛擬主機,各允許一個實例 |
值 | 無 |
如果已設定 SSLOCSPEnable ,且 SSL 用戶端憑證鏈包含 AIA 延伸規格,則 IBM HTTP Server 會聯絡 AIA 延伸規格所指示的 OCSP 回應端,以檢查用戶端憑證的撤銷狀態。
如果 OCSP 和 CRL 檢查都已配置,會先執行 OCSP 檢查,再執行任何 CRL 檢查。 唯有當 OCSP 檢查不明或不確定時,才會進行 CRL 檢查。
如果同時配置 SSLOCSPEnable 及 SSLOCSPResponderURL ,則會先檢查 SSLOCSPResponderURL 所定義的回應者。 如果撤銷狀態不明或不確定, IBM HTTP Server 會檢查 SSLOCSPEnable的 OCSP 回應端。
SSLOCSPCacheSize
名稱 | 說明 |
---|---|
語法 | SSLOCSPCacheSize number-of-elements |
範圍 | 虛擬主機 |
預設值 |
|
模組 | mod_ibm_ssl |
配置檔中的多個實例 | 針對每部虛擬主機,各允許一個實例 |
值 | 快取的元素數目上限 |
啟用非零 SSLOCSPCacheSize 容許對 OCSP 回應使用記憶體內快取。 快取項目的有效期限取決於下列三個因素:
- OCSP 回應端指定的
nextUpdate
欄位。 - OCSP 回應者指定的 HTTP 快取標頭。
- 從完整快取收回以容納新項目。
無法檢視快取的內容,只有在 Web 伺服器重新啟動時才能清除。
Keyfile 指引
名稱 | 說明 |
---|---|
語法 |
|
範圍 | 廣域和虛擬主機 |
預設值 | 無 |
模組 | mod_ibm_ssl |
配置檔中的多個實例 | 每部虛擬主機和廣域伺服器各一個實例 |
值 | 金鑰檔的路徑 |
使用提示選項,使 HTTP 伺服器能夠在啟動時,提示您輸入金鑰檔密碼。 只有在從指令行以互動方式啟動伺服器時,才支援提示選項。
用來啟動 IBM HTTP Server 的 ID 必須具有此指引中所指名之金鑰環的存取權。 如果 ID 沒有存取權,則 SSL 起始設定會失敗。
SSLAcceleratorDisable 指引
名稱 | 說明 |
---|---|
語法 | SSLAcceleratorDisable |
範圍 | 虛擬和廣域 |
預設值 | 啟用加速器裝置 |
模組 | mod_ibm_ssl |
配置檔中的多個實例 | 每部虛擬主機各一個實例。 |
值 | 無。 您可以將此指引放在配置檔中的任何位置,包括虛擬主機內。 在起始設定期間,如果系統判定機器上已安裝加速器裝置,系統就會使用該加速器來增加安全交易數目。 此指引不使用引數。 |
SSLAllowNonCriticalBasicConstraints 指引
名稱 | 說明 |
---|---|
語法 | SSLAllowNonCriticalBasicConstraints on|off |
範圍 | 廣域伺服器或虛擬主機 |
預設值 | 關閉 |
模組 | mod_ibm_ssl |
配置檔中的多個實例 | 每部虛擬主機和廣域伺服器各一個實例 |
值 | 無。 此指引會變更憑證驗證演算法的行為,使得發證者憑證管理中心 (CA) 憑證上的非重要基本限制延伸不會造成驗證失敗。 如此可讓您相容於日本政府的 GPKI 規格中,與 RFC3280 衝突的某個層面。 注意: RFC3280 指出此延伸必須在包含用來驗證憑證上數位簽章之公開金鑰的所有 CA 憑證中顯示為重要延伸。
|
SSLCacheDisable 指引
名稱 | 說明 |
---|---|
語法 | SSLCacheDisable |
範圍 | 每個實體 Apache Server 實例各一個,僅在虛擬主機段落外部啟用。 |
預設值 | 無 |
模組 | mod_ibm_ssl |
配置檔中的多個實例 | 不允許。 |
值 | 無。 |
SSLCacheEnable 指引
名稱 | 說明 |
---|---|
語法 | SSLCacheEnable |
範圍 | 每個實體 Apache Server 實例各一個,僅在虛擬主機段落外部啟用。 |
預設值 | 無 |
模組 | mod_ibm_ssl |
配置檔中的多個實例 | 不允許。 |
值 | 無。 |
SSLCacheErrorLog 指引
名稱 | 說明 |
---|---|
語法 | SSLCacheErrorLog /usr/HTTPServer/logs/sidd_logg |
範圍 | 虛擬主機外部的伺服器配置。 |
預設值 | 無 |
模組 | mod_ibm_ssl |
配置檔中的多個實例 | 不允許。 |
值 | 有效的檔名。 |
SSLCachePath 指引
SSLCachePath 指引可指定階段作業 ID 快取常駐程式的路徑。 除非您有多個 IHS 實例有多個 ServerRoot
指引或 -d
選項共用一個安裝,否則您不需要指定這個指引。
當有多個 IHS 實例與替代伺服器根目錄搭配使用時(如上述),應使用此指引,將這個 IHS 實例指向單一安裝根目錄(而不是預設使用的個別伺服器根目錄)中的 bin/sidd 二進位檔路徑。
使用多個實例時,並沒有實際的理由需要複製 bin/sidd 二進位檔,或是使用這個指引來指定安裝在伺服器根目錄下的 bin/sidd 以外的任何項目。 在共用相同二進位檔的 IHS 實例之間,此指引的值不需要改變。
名稱 | 說明 |
---|---|
語法 | SSLCachePath /usr/HTTPServer/bin/sidd |
範圍 | 虛擬主機外部的伺服器配置。 |
預設值 | <server-root>/bin/sidd |
模組 | mod_ibm_ssl |
配置檔中的多個實例 | 不允許。 |
值 | 有效的路徑名稱。 |
SSLCachePortFilename 指引
名稱 | 說明 |
---|---|
語法 | SSLCachePortFilename /usr/HTTPServer/logs/siddport |
範圍 | 虛擬主機外部的伺服器配置。 |
預設值 | 如果沒有指定此指引,但啟用快取,伺服器會嘗試使用 <server-root>/logs/siddport 檔案。附註:
|
模組 | mod_ibm_ssl |
配置檔中的多個實例 | 不允許。 |
值 | 有效的路徑名稱。 Web 伺服器會在啟動期間刪除此檔案;請勿使用現有的檔名。 |
SSLCacheTraceLog 指引
名稱 | 說明 |
---|---|
語法 | SSLCacheTraceLog /usr/HTTPServer/logs/sidd-trace.log |
範圍 | 虛擬主機外部的伺服器配置。 |
預設值 | 無。 |
模組 | mod_ibm_ssl |
配置檔中的多個實例 | 不允許。 |
值 | 有效的路徑名稱。 |
SSLCheckCertificate有效期限
名稱 | 說明 |
---|---|
語法 | SSLCheckCertificateExpiration <i>days</i>|-1
["no_expired"] |
範圍 | 廣域伺服器或虛擬主機。 |
預設值 | 無。 |
模組 | mod_ibm_ssl |
配置檔中的多個實例 | 每部虛擬主機和廣域伺服器各一個實例。 |
值 | 對於 days 參數,請指定到期憑證的臨界值 (以天為單位) ,或輸入 -1 以停用該參數。 對於選用 no_expired 參數,指定 no_expired 以停用已過期憑證的報告。 |
SSLCipherBan 指引
名稱 | 說明 |
---|---|
語法 | SSLCipherBan <cipher_specification> |
範圍 | 每個目錄段落各有多個實例。 |
預設值 | 無。 |
模組 | mod_ibm_ssl |
配置檔中的多個實例 | 每個目錄段落都允許。 喜好設定順序是從開始到完成。 |
值 | 請參閱 SSL 密碼規格主題,以取得值。 |
SSLCipherRequire 指引
名稱 | 說明 |
---|---|
語法 | SSLCipherRequire <cipher_specification> |
範圍 | 每個目錄段落各有多個實例。 |
預設值 | 無。 |
模組 | mod_ibm_ssl |
配置檔中的多個實例 | 每個目錄段落都允許。 |
值 | 請參閱 SSL 密碼規格主題,以取得值。 |
SSLCipherSpec 指引
SSLCipherSpec 指引可讓您自訂在信號交換期間支援的 SSL 密碼。 您可以自訂 SSL 密碼集,以及SSL 密碼的喜好順序。
在分散式平台上,每個通訊協定都有自己的密碼排序清單。 支援的通訊協定為 SSL 第 2 版、SSL 第 3 版、TLS 1.0 版、TLS 1.1 版和 TLS 1.2 版。
在 z/OS上,只有兩個已啟用密碼清單,一個用於 SSL 第 2 版,另一個用於其他通訊協定。 支援的通訊協定為 SSL 第 2 版、SSL 第 3 版及 TLS 1.0版,以及 TLS 1.1版。 具有 OA39422或更新版本的 z/OS V1R13 上支援 TLS 1.2 版。
SSL 第 2 版密碼預設為無密碼,表示停用通訊協定。 其他通訊協定則有一組預設 SSL 密碼,其中不包括空值密碼、匯出密碼和低強度密碼。
當您使用單一引數格式 SSLCipherSpec時,密碼會在所有有效的通訊協定中啟用。 在第一次為每個通訊協定進行這類變更時,都會捨棄通訊協定的預設密碼。
當您使用 SSLCipherSpec的多引數形式,並指定 SSL 通訊協定 (或 ALL
) 的名稱作為第一個引數時,您可以使用具有下列好處的加強語法:
- 每次出現 SSLCipherSpec時可以列出多個密碼。
- 可以透過在密碼名稱前面加上
-
,從已啟用密碼的現行集合中移除個別密碼。 - 第一次修改給定的通訊協定密碼清單時,可以將給定的密碼新增至預設值結尾,而不是取代它們,方法是在密碼名稱前面加上
+
。
如果您提供通訊協定名稱 ALL
,則針對每一個密碼名稱指定的新增或移除會套用至該密碼有效的每一個通訊協定。
在特殊情況下,如果要以單一指令來清空所有密碼清單,您可以使用 SSLCipherSpec ALL NONE
。 當您不想要使用預設密碼時,使用這個指令來啟動配置會是個好方法。
名稱 | 說明 |
---|---|
語法 | SSLCipherSpec [protocol-name] [+|-]cipher-name
[[+|-]cipher-name ...] |
範圍 | 伺服器配置、虛擬主機。 |
預設值 | 如果未指定值,伺服器會使用所有可用的非空值、非匯出、非低強度密碼規格。 |
模組 | mod_ibm_ssl |
配置檔中的多個實例 | 允許。 喜好設定順序是從開始到完成,從第一個到最後一個。 |
分散式平台上通訊協定名稱的值 |
9.0.5.2 版以及更新版本支援所有列出的通訊協定名稱值,包括 |
z/OS 上通訊協定名稱的值 | 全部 |
密碼名稱的值 | 請參閱 SSL 密碼規格主題,以取得值。 |
範例 1
如果您只要選取幾個密碼,最好從重設所有密碼清單開始,然後新增必要的密碼:
# Delete all ciphers from the cipher lists
SSLCipherSpec ALL NONE
# Add a few specific ciphers
SSLCipherSpec ALL +SSL_RSA_WITH_3DES_EDE_CBC_SHA
SSLCipherSpec ALL +TLS_RSA_WITH_AES_256_CBC_SHA
範例 2
如果您想要使用大部分預設值,可以從它們所在的任何清單中移除不想要的密碼:
# Delete some specific ciphers from the protocols where they are valid
SSLCipherSpec ALL -SSL_RSA_WITH_RC4_128_MD5
SSLCipherSpec ALL -SSL_RSA_WITH_RC4_128_SHA
SSLClientAuth 指引
名稱 | 說明 |
---|---|
語法 | SSLClientAuth <level required> [crl] |
範圍 | 虛擬主機。 |
預設值 | SSLClientAuth none |
模組 | mod_ibm_ssl |
配置檔中的多個實例 | 每部虛擬主機各一個實例。 |
值 |
如果您指定 0/None 值,則無法使用 CRL 選項。 |
Required_reset | 伺服器需要所有用戶端的有效憑證,如果沒有可用的憑證,伺服器會傳送 SSL 警示至用戶端。 這個警示可讓用戶端瞭解 SSL 失敗與用戶端憑證有關,並促使瀏覽器重新提示輸入有關後續存取的用戶端憑證資訊。 此選項需要 GSKit 7.0.4.19 版或更新版本,或 z/OS V1R8 或更新版本。 |
CRL 處理 |
|
- 如果您的憑證使用 CertificateDistributionPoint 或 AIA 延伸規格的 LDAP 或 HTTP URI 表單,請確定 IBM HTTP Server 系統可以建立此類型的送出連線; 您必須調整防火牆的設定。
- 提供 SSLUnknownRevocationStatus 指引,適用於 IBM HTTP Server 與後端伺服器通訊時發生可回復錯誤,且 IBM HTTP Server 無法判定憑證撤銷狀態的情況。 除非後端伺服器可以順利指出憑證已撤銷,否則預設行為是繼續處理信號交換。
- 只有在明確配置的 LDAP 伺服器中可以查詢 CRL,如果無法與後端伺服器通訊,SSL 信號交換就會失敗。
SSLClientAuthGroup 指引
SSLClientAuthGroup 指引會定義一個具名表示式群組,其中包含一組特定的用戶端憑證屬性/值配對。 此具名群組可供 SSLClientAuthRequire 指引使用。 用戶端必須提供通過此表示式的憑證,伺服器才會允許存取受保護的資源。
名稱 | 說明 |
---|---|
語法 | SSLClientAuth群組 群組名稱 屬性表示式 |
範圍 | 伺服器配置、虛擬主機。 |
預設值 | 無。 |
模組 | mod_ibm_ssl |
配置檔中的多個實例 | 允許。 |
置換 | 無。 |
值 | 邏輯表示式,其中包含以 AND、OR、NOT 和括弧鏈結的屬性檢查。 例如:
|
下一節將提供使用有效邏輯表示式的範例說明。 例如: SSLClientAuthGroup ((CommonName = "Fred Smith") OR (CommonName = "John Deere")) AND (Org = IBM) 表示不提供物件,除非用戶端憑證包含通用名稱 Fred Smith 或 John Deere ,且組織是 IBM。 The only valid comparisons for the attribute checks, are equal and not equal (= and !=). You can link each attribute check with AND, OR, or NOT (also &&, ||, and !). 以 AND、OR 或 NOT 來鏈結的任何比較,都必須包含在括弧內。 如果屬性的值包含非英數字元,則必須用引號來區隔該值。
完整名稱 | 簡短名稱 |
---|---|
CommonName | CN |
國家/地區 | C |
電子郵件 | E |
IssuerCommonName | ICN |
IssuerEmail | TW |
IssuerLocality | IL |
IssuerOrg | I/O |
IssuerOrgUnit | IOU |
IssuerPostalCode | IPC |
IssuerStateOrProvince | IST |
地區 | L |
組織 | O |
OrgUnit | OU |
PostalCode | PC |
StateOrProvince | ST |
此指引中可以使用完整名稱或簡稱。
=
及 !=
。 例如:SSLClientAuthGroup IBMpeople Org = IBM)
或SSLClientAuthGroup
NotMNIBM (ST != MN) && (Org = IBM)
群組名稱不能包含空格。 如需相關資訊,請參閱 SSLClientAuthRequire 指引。
SSLClientAuthRequire 指引
SSLClientAuthRequire 指引會指定屬性值或屬性值群組,在伺服器容許存取受保護資源之前,必須針對用戶端憑證來驗證這些屬性值或屬性值群組。
名稱 | 說明 |
---|---|
語法 | SSLClientAuthRequire 屬性表示式 |
範圍 | 伺服器配置、虛擬主機 |
預設值 | 無。 |
模組 | mod_ibm_ssl |
配置檔中的多個實例 | 允許。 此函數透過 AND 結合這些指引。 |
置換 | AuthConfig |
值 | 邏輯表示式,其中包含以 AND、OR、NOT 和括弧鏈結的屬性檢查。 例如:
|
如果您收到的憑證沒有特定屬性,則不會驗證屬性是否相符。 即使指定的相符值為 " "
,這可能還是與完全沒有屬性不同。 在 SSLClientAuthRequire 指引上指定且在憑證上無法使用的任何屬性都會導致要求遭到拒絕。
完整名稱 | 簡短名稱 |
---|---|
CommonName | CN |
國家/地區 | C |
電子郵件 | E |
IssuerCommonName | ICN |
IssuerEmail | TW |
IssuerLocality | IL |
IssuerOrg | I/O |
IssuerOrgUnit | IOU |
IssuerPostalCode | IPC |
IssuerStateOrProvince | IST |
地區 | L |
組織 | O |
OrgUnit | OU |
PostalCode | PC |
StateOrProvince | ST |
此指引中可以使用完整名稱或簡稱。
使用者指定特定用戶端憑證屬性的邏輯表示式。 如果您必須指定用戶端憑證屬性值的分組,可以依邏輯將 AND、OR 或 NOT 用於多個表示式。 以 AND、OR 或 NOT 來鏈結的任何比較,都必須包含在括弧內。 有效的運算子包括 =
及 !=
。 使用者也可以指定使用 SSLClientAuthGroup 指引所配置的群組名稱,以配置一組屬性。
SSLClientAuthRequire ((CommonName="John Doe") || (StateOrProvince=MN)) && (Org!=IBM)
或SSLClientAuthRequire (group!=IBMpeople) && (ST=MN)
SSLClientAuthRequire (group!= IBMpeople) && ("ST= MN")
如需相關資訊,請參閱 SSLClientAuthGroup 指引 。屬性字首 | 說明 |
---|---|
SANDNSNAME | DNS 名稱 |
SANIPADDRESS | IP 位址 |
SANRFC822NAME | RFC822 名稱 (電子郵件) |
SANDIRECTORYNAME | 目錄名稱 |
SANURI | 通用資源 ID (URI) |
SSLClientAuthVerify 指引
SSLClientAuthVerify 指引可控制 IBM HTTP Server 在收到用戶端憑證但驗證失敗 (例如過期或撤銷) 時是否會使要求失敗。
名稱 | 說明 |
---|---|
語法 | SSLClientAuthVerify statuscode|OFF |
範圍 | 廣域伺服器或虛擬主機。 |
預設值 | 500 |
模組 | mod_ibm_ssl |
配置檔中的多個實例 | 每個目錄段落各一個實例。 |
值 | HTTP 回應狀態碼,或是 OFF |
將這個指引與 SSLClientAuth Optional Noverify
搭配使用,可提供對使用者友善的網頁,而不是預設的瀏覽器錯誤訊息。
如果您使用 SSLClientAuth Optional Noverify
來配置虛擬主機,當收到用戶端憑證,但其驗證失敗時(例如過期或撤銷),可建立 SSL 連線。
在 Location
或 Directory
之類的環境定義中使用這個指引,會使在該連線上接收的要求失敗,並產生特定錯誤碼,或是設定 OFF
,以正常處理。
管理者可以針對該狀態提供自訂錯誤文件,以控制對使用者顯示的頁面,例如,告知使用者其憑證無效,並提供進一步的指示。
如果錯誤文件是在內部重新導向至相同虛擬主機中的另一個 URL,您必須確定該 URL 的環境定義中有 SSLClientAuthVerify OFF
,使其不會也立即失效。 此實務的範例如下所示。
指定的狀態碼必須是在 HTTP 中有效且 IBM HTTP Server已知的回應狀態。 這些值介於 100 到 599,通常會定義在 RFC 或標準提案中。 如果您不確定,請在測試配置中試用狀態碼,並使用 apachectl -t
來查看其是否有效。 其他有效且為好選擇的未使用代碼包括:418、419、420 和 421。
因為用戶端憑證無效,所以錯誤文件不會有包含用戶端憑證相關資訊的任何環境變數可用。 用戶端憑證驗證失敗的原因在 SSL_LAST_VALIDATION_ERROR
環境變數中。 變數可以是 GSKVAL_ERROR_REVOKED_CERT
或 GSKVAL_ERROR_CERT_EXPIRED
。 如果憑證有多個驗證問題,所報告的原因通常是 GSKVAL_ERROR_CA_MISSING_CRITICAL_BASIC_CONSTRAINT
。
每當用戶端憑證驗證失敗,就會在錯誤日誌中,於 loglevel Error
記載兩則訊息。 第二則訊息包含原因,例如:
[Tue Jun 08 08:54:25 2010] [error] [client 9.37.243.128] [9e44c28] [731] SSL0208E: SSL Handshake Failed, 憑證驗證錯誤。 [9.37.243.128:60347 -> 9.37.243.67:443] [08:54:25.000223331] [Tue Jun 08 08:54:25 2010] [error] [client 9.37.243.128] [9e44c28] [731] Certificate validation error during handshake, last PKIX/RFC3280 certificate validation error was GSKVAL_ERROR_CA_MISSING_CRITICAL_BASIC_CONSTRAINT [9.37.243.128:60347 -> 9.37.243.67:443] [08:54:25.000223331]
<VirtualHost *:443
SSLClientAuth Optional Noverify
<Location />
SSLClientAuthVerify 419
</Location>
ErrorDocument 419 /error419.html
<Location /error419.html>
SSLClientAuthVerify OFF
</Location>
</VirtualHost>
SSLCRLHostname 指引(已淘汰)
SSLCRLHostname 指引指定「憑證撤銷清冊 (CRL)」資料庫所在 LDAP 伺服器的 TCP/IP 名稱或位址。
名稱 | 說明 |
---|---|
語法 | <SSLCRLHostName <TCP/IP name or
address> |
範圍 | 廣域伺服器或虛擬主機。 |
預設值 | 依預設已停用。 |
模組 | mod_ibm_ssl |
配置檔中的多個實例 | 每部虛擬主機和廣域伺服器各一個實例。 |
值 | LDAP 伺服器的 TCP/IP 名稱或位址 |
針對 LDAP 型 CRL 儲存庫的靜態配置,搭配使用 SSLCRLHostname 指引與 SSLCRLPort、 SSLCRLUserID及 SSLStashfile 指引。 只有在明確的 CRLDistributionPoint X.509v3 憑證延伸不存在或延伸中指定的伺服器沒有回應 (即無法使用) 時,才需要使用這些指引來查詢 LDAP 型 CRL 儲存庫。
如果憑證中存在 CRLDistributionPoint 延伸,且延伸中指定的伺服器可回應 (即可用) ,則會匿名查詢 CRLDistributionPoint 中指定的 LDAP 伺服器,而不使用這些指引。
SSLCRLPort 指引(已淘汰)
SSLCRLPort 指引指定「憑證撤銷清冊 (CRL)」資料庫所在的 LDAP 伺服器埠。
名稱 | 說明 |
---|---|
語法 | SSLCRL<port> |
範圍 | 廣域伺服器或虛擬主機。 |
預設值 | 依預設已停用。 |
模組 | mod_ibm_ssl |
配置檔中的多個實例 | 每部虛擬主機和廣域伺服器各一個實例。 |
值 | LDAP 伺服器的埠;預設值 = 389。 |
針對 LDAP 型 CRL 儲存庫的靜態配置,搭配使用 SSLCRLPort 指引與 SSLCRLUserID、 SSLCRLHostname及 SSLStashfile 指引。 只有在明確的 CRLDistributionPoint X.509v3 憑證延伸不存在或延伸中指定的伺服器沒有回應 (無法使用) 時,才需要使用這些指引來查詢 LDAP 型 CRL 儲存庫。
如果憑證中有 CRLDistributionPoint 延伸存在,且延伸中指定的伺服器有回應(可用),則會以匿名方式查詢 CRLDistributionPoint 中指定的 LDAP 伺服器,而不會使用這些指引。
SSLCRLUserID 指引(已淘汰)
SSLCRLUserID 指引指定要傳送至 LDAP 伺服器的使用者 ID ,這是「憑證撤銷清冊 (CRL)」資料庫所在的位置。
名稱 | 說明 |
---|---|
語法 | SSLCRLUserID <[prompt] <userid> |
範圍 | 廣域伺服器或虛擬主機。 |
預設值 | 如果您未指定使用者 ID,則預設為匿名。 |
模組 | mod_ibm_ssl |
配置檔中的多個實例 | 每部虛擬主機和廣域伺服器各一個實例。 |
值 | LDAP 伺服器的使用者 ID。 使用提示選項,使 HTTP 伺服器能夠在啟動期間,提示您輸入用來存取 LDAP 伺服器的密碼。 |
針對 LDAP 型 CRL 儲存庫的靜態配置,使用 SSLCRLUserID 指引,以及 SSLCRLPort、 SSLCRLHostname和 SSLStashfile 指引。 只有在明確的 CRLDistributionPoint X.509v3 憑證延伸不存在或延伸中指定的伺服器沒有回應 (即無法使用) 時,才需要使用這些指引來查詢 LDAP 型 CRL 儲存庫。
如果憑證中有 CRLDistributionPoint 延伸存在,且延伸中指定的伺服器有回應(可用),則會以匿名方式查詢 CRLDistributionPoint 中指定的 LDAP 伺服器,而不會使用這些指引。
SSLDisable 指引
名稱 | 說明 |
---|---|
語法 | SSLDisable |
範圍 | 廣域伺服器或虛擬主機。 |
預設值 | 依預設已停用。 |
模組 | mod_ibm_ssl |
配置檔中的多個實例 | 每部虛擬主機和廣域伺服器各一個實例。 |
值 | 無。 |
SSLEnable 指引
名稱 | 說明 |
---|---|
語法 | SSLEnable |
範圍 | 廣域伺服器或虛擬主機。 |
預設值 | 依預設已停用。 |
模組 | mod_ibm_ssl |
配置檔中的多個實例 | 每部虛擬主機和廣域伺服器各一個實例。 |
值 | 無。 |
SSLFakeBasicAuth 指引
SSLFakeBasicAuth 指引會啟用偽造基本鑑別支援。
名稱 | 說明 |
---|---|
語法 | SSLFakeBasicAuth |
範圍 | 在目錄段落中,與 AuthName、AuthType 和 require 指引搭配使用。 |
預設值 | 無。 |
模組 | mod_ibm_ssl |
配置檔中的多個實例 | 每個目錄段落各一個實例。 |
值 | 無。 |
SSLFIPSDisable 指引
名稱 | 說明 |
---|---|
語法 | SSLFIPSDisable |
範圍 | 虛擬和廣域。 |
預設值 | 依預設已停用。 |
模組 | mod_ibm_ssl |
配置檔中的多個實例 | 每部虛擬主機和廣域伺服器各一個實例。 |
值 | 無。 |
SSLFIPSEnable 指引
SSLFIPSEnable 指引會啟用「聯邦資訊存取安全標準 (FIPS)」。
這個指令適用於分散式平台。
- 這個指引只在廣域範圍中有效。
- 如果您變更指引的值,則必須停止然後啟動 IBM HTTP Server ,新值才會生效。 如果您執行重新啟動,則新值不會生效。
名稱 | 說明 |
---|---|
語法 | SSLFIPSEnable |
範圍 | 虛擬和廣域。 |
預設值 | 依預設已停用。 |
模組 | mod_ibm_ssl |
配置檔中的多個實例 | 每部虛擬主機和廣域伺服器各一個實例。 |
值 | 無。 |
SSLInsecureRenegotiation 指引
SSLInsecureRenegotiation 指引決定是否允許不安全 ( RFC5746之前) SSL 重新協議。 任何類型的 SSL 重新協議都不常見,不應將此指引從其預設值 off 變更。
指定 on 時,可允許不安全的 SSL 重新協議。 指定 off(預設值)時,不允許不安全的 SSL 重新協議。
名稱 | 說明 |
---|---|
語法 | SSLInsecureRenogotiation directive on|off |
範圍 | 虛擬主機 |
預設值 | off |
模組 | mod_ibm_ssl |
配置檔中的多個實例 | 每部虛擬主機和廣域伺服器各一個實例 |
值 | on|off |
SSLMinimumRSAKeySize 指引
SSLMinimumRSAKeySize 指引主要用來對收到的用戶端憑證施行 RSA 金鑰大小下限。 指引的行為取決於平台安全程式庫提供的功能。
名稱 | 說明 |
---|---|
語法 | SSLMinimumRSAKeySize size |
範圍 | 廣域和虛擬主機 |
預設值 | 0 (無下限) |
模組 | mod_ibm_ssl |
配置檔中的多個實例 | 每部虛擬主機和廣域伺服器各一個實例 |
值 | 金鑰大小 (以位元為單位) ,例如 2048 |
在伺服器接收的用戶端憑證上施行金鑰大小。 不會檢查用戶端憑證的發證者。
在 mod_ibm_ssl
所傳送或接收的所有憑證上施行金鑰大小,包括其完整憑證鏈。 在記載及條件式表示式中使用環境變數 SSL_CLIENT_KEY_ALG,例如 RSA
及 EC_ecPublicKey
,以及 SSL_CLIENT_KEY_SIZE 。
如果不符合 RSA 金鑰大小下限, SSL 信號交換會失敗。
SSLPKCSDriver 指引
SSLPKCSDriver 指引可識別模組的完整名稱,或用來存取 PKCS11 裝置的驅動程式。
名稱 | 說明 |
---|---|
語法 | Fully qualified name to module used to access PKCS11
device> 。 如果模組存在於使用者路徑中,請只指定模組的名稱。 |
範圍 | 廣域伺服器或虛擬主機。 |
預設值 | 無。 |
模組 | mod_ibm_ssl |
配置檔中的多個實例 | 每部虛擬主機和廣域伺服器各一個實例。 |
值 | PKCS11 模組或驅動程式的路徑和名稱。 |
- nCipher
- AIX: /opt/nfast/toolkits/pkcs11/libcknfast.so
- HP: /opt/nfast/toolkits/pkcs11/libcknfast.sl
- Solaris: /opt/nfast/toolkits/pkcs11/libcknfast.so
- Windows: c:\nfast\toolkits\pkcs11\cknfast.dll
- IBM 4758
- AIX: /usr/lib/pkcs11/PKCS11_API.so
- Windows: $PKCS11_HOME\bin\nt\cryptoki.dll
- IBM 電子商務加密加速器
- AIX: /usr/lib/pkcs11/PKCS11_API.so
SSLProtocolDisable 指引
SSLProtocolDisable 指引可讓您指定用戶端無法針對特定虛擬主機使用的一或多個 SSL 通訊協定。 此指引必須位於 <VirtualHost> 儲存器中。
名稱 | 說明 |
---|---|
語法 | SSLProtocolDisable <protocolname> 支援的通訊協定名稱值:
9.0.5.2 版以及更新版本支援所有列出的通訊協定名稱值,包括 |
範圍 | 虛擬主機 |
預設值 | 已停用 注意: 依預設,會使用其他方法來停用 SSL 第 2 版通訊協定。
|
模組 | mod_ibm_ssl |
配置檔中的多個實例 | 每部虛擬主機可允許多個實例。 |
<VirtualHost *:443>
SSLEnable
SSLProtocolDisable TLSv10
# Any other directives ...
</VirtualHost>
SSLProtocolEnable 指引
SSLProtocolEnable 指引可用來啟用個別 SSL 通訊協定。
名稱 | 說明 |
---|---|
語法 | SSLProtocolEnable <protocolname> 支援的通訊協定名稱值:
9.0.5.2 版以及更新版本支援所有列出的通訊協定名稱值,包括 |
範圍 | 虛擬主機 |
預設值 | 取消設定 |
模組 | mod_ibm_ssl |
配置檔中的多個實例 | 每部虛擬主機可允許多個實例。 |
SSLProxyEngine 指引
SSLProxyEngine on
。名稱 | 說明 |
---|---|
語法 | SSLProxyEngine on|off |
範圍 | IP 型虛擬主機 |
預設值 | 關閉 |
模組 | mod_ibm_ssl |
配置檔中的多個實例 | 每部虛擬主機和廣域伺服器各一個 |
值 | on|off |
SSLProxyCheckPeerCN 指引
名稱 | 說明 |
---|---|
語法 | SSLProxyCheckPeerCN on|off |
範圍 | 虛擬主機 |
預設值 | 開啟 |
模組 | mod_ibm_ssl |
配置檔中的多個實例 | 每部虛擬主機和廣域伺服器各一個 |
值 | on|off |
SSLRenegotiation 指引
名稱 | 說明 |
---|---|
語法 | SSLRenegotiation on|off|LEGACY_AND_RFC5746 |
預設值 | 關閉 |
模組 | mod_ibm_ssl |
環境定義 | 虛擬主機 |
狀態 | 延伸 |
值 | on|off|LEGACY_AND_RFC5746 |
- OFF(預設值)
- 不允許重新協議。
- 開啟
- 允許安全的重新協議,如 RFC5746 目前所定義。
- LEGACY_AND_RFC5746
- 安全的重新協議和舊式不安全的重新協議都允許。
- 在 IBM HTTP Server 8.0 和更新版本中,此指引取代 SSLInsecureRenegotiation 指引。
- IBM HTTP Server 8.0.0.0 預設為 ON(接受 RFC5746 重新協議)。
- 在 7.0.0.21之前,組合 GSKit 安全程式庫不知道 RFC5746,且
ON
會參照舊式不安全重新協議。 - 對 LEGACY_AND_RFC5746 選項的支援,取決於 IBM HTTP Server 7.0.0.21 和更新版本。
SSLServerCert 指引
名稱 | 說明 |
---|---|
語法 | SSLServerCert [prompt|certificate_label]
certificate_label |
範圍 | IP 型虛擬主機。 |
預設值 | 無,但是 SSL 金鑰儲存庫有自己的預設憑證記號。 |
模組 | mod_ibm_ssl |
配置檔中的多個實例 | 每部虛擬主機和廣域伺服器各一個實例。 |
值 | 憑證標籤。 使用 /prompt 選項,讓 HTTP 伺服器在啟動期間提示您輸入加密記號密碼。 不要用定界字元來含括憑證標籤。 請確定標籤包含在一行中; 系統不處理前導和尾端空格。 |
- 若要選擇預設以外的憑證標籤,請指定單一參數,其值為必要非預設憑證的標籤。
- 如果要使用加密記號,請指定以冒號區隔的加密記號名稱和憑證標籤 (mytoken:mylabel)。 或者,您可以指定 /prompt 作為第一個參數,以互動方式提示輸入加密記號密碼,而不是使用 SSLStashFile。
- 若要同時配置 ECDSA 及 RSA 型憑證,請指定兩個憑證標籤 (以空格區隔)。 如果用戶端僅支援 RSA 或 ECDSA 型憑證,則會選取適當的憑證。 如果用戶端同時支援 RSA 及 ECDSA ,則此指引中最先指定的 certificate_label 會決定要使用的憑證。
- 如果指定一個憑證標籤,則必須以引號括住具有空格的標籤,且不得跳出空格,如下列範例所示:
SSLServerCert "My Label"
- 如果指定兩個憑證標籤,則必須以引號括住任何具有空格的標籤,且必須以反斜線字元跳出空格,如下列範例所示:
SSLServerCert "My\ First\ Label", "My\ Second\ Label"
SSLStashfile 指引
SSLStashfile 指引指出檔名包含開啟 PKCS11 裝置之加密密碼的檔案路徑。
名稱 | 說明 |
---|---|
語法 | SSLStashFile /usr/HTTPServer/mystashfile.sth |
範圍 | 虛擬主機和廣域伺服器。 |
預設值 | 無。 |
模組 | mod_ibm_ssl |
配置檔中的多個實例 | 每部虛擬主機和廣域伺服器各一個實例。 |
值 | 使用 sslstash 指令建立的 LDAP 或 PKCS11 隱藏檔的檔名。 |
SSLStashfile 不會指向使用中 KeyFile 的隱藏檔,因為它會根據 KeyFile的名稱自動計算,而且是不同類型的隱藏檔。
使用 sslstash 指令 (位於 IBM HTTP Server的 bin 目錄中) 來建立 CRL 或加密裝置隱藏檔。 您使用 sslstash 指令來指定的密碼,應該與您用來登入 LDAP 伺服器或加密硬體的密碼相同。
- 當您發出 sslstash 指令時,請勿改寫現有的 *.sth 檔。
- 絕不選擇對應於 CMS KeyFile (*.kdb) 檔名的 sslstash 指令輸出檔名。
用法:sslstash [-c] <directory_to_password_file_and_file_name>
<function_name> <password>
- -c:建立新的隱藏檔。 如果未指定,現有的檔案會更新。
- File:代表所要建立或更新之檔案的完整名稱。
- Function:指出要使用密碼的功能。 有效值包括 crl 或 crypto。
- Password:代表所要隱藏的密碼。
針對 LDAP 型 CRL 儲存庫的靜態配置,搭配使用 SSLStashFile 指引與 SSLCRLPort、 SSLCRLHostname及 SSLCRLUserID 指引。 唯有當明確的 CRLDistributionPoint X.509v3 憑證延伸不存在,或是延伸中指定的伺服器無回應(無法使用)時,才需要使用這些指引來查詢 LDAP 型 CRL 儲存庫。
如果憑證中有 CRLDistributionPoint 延伸存在,且延伸中指定的伺服器有回應(可用),則會以匿名方式查詢 CRLDistributionPoint 中指定的 LDAP 伺服器,而不會使用這些指引。
SSLSuiteBMode
SSLSuiteBMode 指引可用來將含括虛擬主機配置成使用 TLS 的 Suite B 設定檔。
此 Suite B 設定檔會大幅減少伺服器可用的簽章演算法及密碼規格。 可接受的演算法與密碼組合,會因為相關的標準變更,而隨之變更。 128 和 192 引數是指 RFC 6460 中討論的兩個安全等級。
指定這個指引會置換大部分先前指定的 SSL 指引。 此指引不會置換 SSLAttributeSet 設定,因為它具有較高的優先順序。 所有 Suite B 設定檔都需要伺服器的憑證鏈,才能使用強型 ECC 簽章。 RFC 6460 中有提供 Suite B 設定檔的限制說明。
名稱 | 說明 |
---|---|
語法 | SSLSuiteBMode |
範圍 | 虛擬主機 |
預設值 | 取消設定 |
模組 | mod_ibm_ssl |
配置檔中的多個實例 | 每部虛擬主機各一次 |
SSLSupportedCurves
SSLSupportedCurves 指引容許在信號交換使用 ECDHE 金鑰交換的環境中自訂伺服器提供的曲線。 用戶端和伺服器必須協議雙方都支援的具名曲線。
名稱 | 說明 |
---|---|
語法 | SSLSupportedCurves TLSv12|TLSv13 curve-list |
範圍 | 廣域和虛擬主機 |
預設值 |
|
模組 | mod_ibm_ssl |
配置檔中的多個實例 | 每個虛擬主機和廣域伺服器每個通訊協定一個實例 |
值 |
|
SSLTrace 指引
SSLTrace 指引可在 mod_ibm_ssl中啟用除錯記載。 它與 LogLevel 指引一起使用。 若要在 mod_ibm_ssl中啟用除錯記載,請將 LogLevel 設定為除錯,並在 IBM HTTP Server 配置檔中,在 mod_ibm_ssl的 LoadModule 指引之後,將 SSLTrace 指引新增至廣域範圍。 在調查 mod_ibm_ssl的可疑問題時,通常會在 IBM 支援中心要求時使用此指引。 在一般工作狀況下,建議不要啟用此指引。
名稱 | 說明 |
---|---|
語法 | SSLTrace |
範圍 | 廣域 |
預設值 | 未啟用 mod_ibm_ssl 除錯記載 |
模組 | mod_ibm_ssl |
配置檔中的多個實例 | 已忽略 |
值 | 無 |
SSLUnknownRevocationStatus
SSLUnknownRevocationStatus 指引指定當 IBM HTTP Server 無法隨時判定撤銷狀態 (透過 CRL 或 OCSP 進入) 時, IBM HTTP Server 如何反應。
名稱 | 說明 |
---|---|
語法 | SSLUnknownRevocationStatus ignore | log | log_always | deny |
範圍 | 虛擬主機 |
預設值 | 忽略 |
模組 | mod_ibm_ssl |
配置檔中的多個實例 | 針對每部虛擬主機,各允許一個實例 |
值 |
|
%{SSL_UNKNOWNREVOCATION_SUBJECT}e
當 SSLUnknownRevocationStatus 指引具有拒絕以外的任何值時,您也可以在 mod_rewrite 表示式中使用該變數。 您可以使用下列變數名稱:%{ENV:SSL_UNKNOWNREVOCATION_SUBJECT}
SSLV2Timeout 指引
SSLV2Timeout 指引設定 SSL 第 2 版階段作業 ID 的逾時值。
名稱 | 說明 |
---|---|
語法 | SSLV2Timeout 60 |
範圍 | 廣域基礎和虛擬主機。 |
預設值 | 40 |
模組 | mod_ibm_ssl |
配置檔中的多個實例 | 每部虛擬主機和廣域伺服器各一個實例。 |
值 | 0 到 100 秒。 |
SSLV3Timeout 指引
SSLV3Timeout 指引設定 SSL 第 3 版和 TLS 階段作業 ID 的逾時值。 當重複使用 SSL 階段作業時,不會重設快取 SSL 階段作業的有效期間。
名稱 | 說明 |
---|---|
語法 | SSLV3Timeout 1000 |
範圍 | 廣域基礎和虛擬主機。 可使用虛擬主機範圍或廣域範圍。 如果也使用 |
預設值 | 120 |
模組 | mod_ibm_ssl |
配置檔中的多個實例 | 每部虛擬主機和廣域伺服器各一個實例。 |
值 | 0 到 86400 秒。 |
SSLVersion 指引
如果用戶端連接的 SSL 通訊協定版本不是指定的版本,則 SSLVersion 指引會導致物件存取拒絕 403 回應。
在大部分情況下, SSLProtocolDisable 指引是比 SSLVersion 指引更好的選擇,可確保使用特定的 SSL 通訊協定版本。 SSLProtocolDisable 指引可讓用戶端瀏覽器協議另一個通訊協定版本 (如果可能的話) ,而 SSLVersion 指引可讓 IBM HTTP Server 傳送 403 回應,這可能會讓使用者感到困惑。
名稱 | 說明 |
---|---|
語法 | SSLVersion ALL |
範圍 | 每個目錄段落各一個。 |
預設值 | 無。 |
模組 | mod_ibm_ssl |
配置檔中的多個實例 | One instance per <目錄> or <位置> stanza. |
值 | 支援的值:
9.0.5.2 版以及更新版本支援所有列出的值,包括 |