?
This document uses PHP Chinese website manual Release
所有PC都是兼容的。但是其中一些比另一些更兼容。
-- 無名氏
本文討論對其他SSL方案的向下兼容性。mod_ssl并不是Apache唯一存在的SSL方案,另外還有四種主要的產(chǎn)品:Ben Laurie的免費的Apache-SSL(出現(xiàn)在1998年,與mod_ssl同源),RedHat商業(yè)化的Secure Web Server(基于mod_ssl),Covalent商業(yè)化的Raven SSL Module(同樣基于mod_ssl)和C2Net的商業(yè)化產(chǎn)品Stronghold(直到Stringhold2.x都基于一個不同的演化分支Sioux,從Stronghold3.x起基于mod_ssl)。
使用mod_ssl的原因是,mod_ssl幾乎提供了在大多數(shù)情況下能夠兼容其他方案的功能的超集。事實上,兼容性包括三個方面:配置指令、環(huán)境變量和自定義日志功能。
為了兼容SSL方案的配置指令,我們做了一個簡單的對應(yīng):有直接對應(yīng)的指令則簡單對應(yīng),沒有直接對應(yīng)的指令則會在日志文件中產(chǎn)生警告信息。表1列出已實現(xiàn)對應(yīng)的指令。目前僅對Apache-SSL1.x和mod_ssl2.0.x有完整的向下兼容支持,而僅支持Sioux1.x和Stronghold2.x的一部分,由于其接口中的特殊功能mod_ssl目前尚不支持。
舊指令 | mod_ssl指令 | 說明 |
---|---|---|
Apache-SSL 1.x & mod_ssl 2.0.x 兼容性: | ||
SSLEnable |
SSLEngine on |
已強化 |
SSLDisable |
SSLEngine off |
已強化 |
SSLLogFile file
|
SSLLog file
|
已強化 |
SSLRequiredCiphers spec
|
SSLCipherSuite spec
|
被更名 |
SSLRequireCipher c1 ... |
SSLRequire %{SSL_CIPHER} in {" c1",
...}
|
無顯著改變 |
SSLBanCipher c1 ... |
SSLRequire not (%{SSL_CIPHER} in {" c1",
...})
|
無顯著改變 |
SSLFakeBasicAuth |
SSLOptions +FakeBasicAuth |
被合并 |
SSLCacheServerPath dir
|
- | 已廢除 |
SSLCacheServerPort integer
|
- | 已廢除 |
Apache-SSL 1.x 兼容性: | ||
SSLExportClientCertificates |
SSLOptions +ExportCertData |
被合并 |
SSLCacheServerRunDir dir
|
- | 不再支持 |
Sioux 1.x 兼容性: | ||
SSL_CertFile file
|
SSLCertificateFile file
|
被更名 |
SSL_KeyFile file
|
SSLCertificateKeyFile file
|
被更名 |
SSL_CipherSuite arg
|
SSLCipherSuite arg
|
被更名 |
SSL_X509VerifyDir arg
|
SSLCACertificatePath arg
|
被更名 |
SSL_Log file
|
SSLLogFile file
|
被更名 |
SSL_Connect flag
|
SSLEngine flag
|
被更名 |
SSL_ClientAuth arg
|
SSLVerifyClient arg
|
被更名 |
SSL_X509VerifyDepth arg
|
SSLVerifyDepth arg
|
被更名 |
SSL_FetchKeyPhraseFrom arg
|
- | 沒有直接的對應(yīng);使用:SSLPassPhraseDialog |
SSL_SessionDir dir
|
- | 沒有直接的對應(yīng);使用:SSLSessionCache |
SSL_Require expr
|
- | 沒有直接的對應(yīng);使用:SSLRequire |
SSL_CertFileType arg
|
- | 不再支持 |
SSL_KeyFileType arg
|
- | 不再支持 |
SSL_X509VerifyPolicy arg
|
- | 不再支持 |
SSL_LogX509Attributes arg
|
- | 不再支持 |
Stronghold 2.x 兼容性: | ||
StrongholdAccelerator dir
|
- | 不再支持 |
StrongholdKey dir
|
- | 不再支持 |
StrongholdLicenseFile dir
|
- | 不再支持 |
SSLFlag flag
|
SSLEngine flag
|
被更名 |
SSLSessionLockFile file
|
SSLMutex file
|
被更名 |
SSLCipherList spec
|
SSLCipherSuite spec
|
被更名 |
RequireSSL |
SSLRequireSSL |
被更名 |
SSLErrorFile file
|
- | 不再支持 |
SSLRoot dir
|
- | 不再支持 |
SSL_CertificateLogDir dir
|
- | 不再支持 |
AuthCertDir dir
|
- | 不再支持 |
SSL_Group name
|
- | 不再支持 |
SSLProxyMachineCertPath dir
|
- | 不再支持 |
SSLProxyMachineCertFile file
|
- | 不再支持 |
SSLProxyCACertificatePath dir
|
- | 不再支持 |
SSLProxyCACertificateFile file
|
- | 不再支持 |
SSLProxyVerifyDepth number
|
- | 不再支持 |
SSLProxyCipherList spec
|
- | 不再支持 |
當使用"SSLOptions +CompatEnvVars
"時,會產(chǎn)生附加的、對應(yīng)于現(xiàn)存官方mod_ssl變量的環(huán)境變量。表2列出了已實現(xiàn)的變量的演變。
舊變量 | mod_ssl 變量 | 說明 |
---|---|---|
SSL_PROTOCOL_VERSION |
SSL_PROTOCOL |
被更名 |
SSLEAY_VERSION |
SSL_VERSION_LIBRARY |
被更名 |
HTTPS_SECRETKEYSIZE |
SSL_CIPHER_USEKEYSIZE |
被更名 |
HTTPS_KEYSIZE |
SSL_CIPHER_ALGKEYSIZE |
被更名 |
HTTPS_CIPHER |
SSL_CIPHER |
被更名 |
HTTPS_EXPORT |
SSL_CIPHER_EXPORT |
被更名 |
SSL_SERVER_KEY_SIZE |
SSL_CIPHER_ALGKEYSIZE |
被更名 |
SSL_SERVER_CERTIFICATE |
SSL_SERVER_CERT |
被更名 |
SSL_SERVER_CERT_START |
SSL_SERVER_V_START |
被更名 |
SSL_SERVER_CERT_END |
SSL_SERVER_V_END |
被更名 |
SSL_SERVER_CERT_SERIAL |
SSL_SERVER_M_SERIAL |
被更名 |
SSL_SERVER_SIGNATURE_ALGORITHM |
SSL_SERVER_A_SIG |
被更名 |
SSL_SERVER_DN |
SSL_SERVER_S_DN |
被更名 |
SSL_SERVER_CN |
SSL_SERVER_S_DN_CN |
被更名 |
SSL_SERVER_EMAIL |
SSL_SERVER_S_DN_Email |
被更名 |
SSL_SERVER_O |
SSL_SERVER_S_DN_O |
被更名 |
SSL_SERVER_OU |
SSL_SERVER_S_DN_OU |
被更名 |
SSL_SERVER_C |
SSL_SERVER_S_DN_C |
被更名 |
SSL_SERVER_SP |
SSL_SERVER_S_DN_SP |
被更名 |
SSL_SERVER_L |
SSL_SERVER_S_DN_L |
被更名 |
SSL_SERVER_IDN |
SSL_SERVER_I_DN |
被更名 |
SSL_SERVER_ICN |
SSL_SERVER_I_DN_CN |
被更名 |
SSL_SERVER_IEMAIL |
SSL_SERVER_I_DN_Email |
被更名 |
SSL_SERVER_IO |
SSL_SERVER_I_DN_O |
被更名 |
SSL_SERVER_IOU |
SSL_SERVER_I_DN_OU |
被更名 |
SSL_SERVER_IC |
SSL_SERVER_I_DN_C |
被更名 |
SSL_SERVER_ISP |
SSL_SERVER_I_DN_SP |
被更名 |
SSL_SERVER_IL |
SSL_SERVER_I_DN_L |
被更名 |
SSL_CLIENT_CERTIFICATE |
SSL_CLIENT_CERT |
被更名 |
SSL_CLIENT_CERT_START |
SSL_CLIENT_V_START |
被更名 |
SSL_CLIENT_CERT_END |
SSL_CLIENT_V_END |
被更名 |
SSL_CLIENT_CERT_SERIAL |
SSL_CLIENT_M_SERIAL |
被更名 |
SSL_CLIENT_SIGNATURE_ALGORITHM |
SSL_CLIENT_A_SIG |
被更名 |
SSL_CLIENT_DN |
SSL_CLIENT_S_DN |
被更名 |
SSL_CLIENT_CN |
SSL_CLIENT_S_DN_CN |
被更名 |
SSL_CLIENT_EMAIL |
SSL_CLIENT_S_DN_Email |
被更名 |
SSL_CLIENT_O |
SSL_CLIENT_S_DN_O |
被更名 |
SSL_CLIENT_OU |
SSL_CLIENT_S_DN_OU |
被更名 |
SSL_CLIENT_C |
SSL_CLIENT_S_DN_C |
被更名 |
SSL_CLIENT_SP |
SSL_CLIENT_S_DN_SP |
被更名 |
SSL_CLIENT_L |
SSL_CLIENT_S_DN_L |
被更名 |
SSL_CLIENT_IDN |
SSL_CLIENT_I_DN |
被更名 |
SSL_CLIENT_ICN |
SSL_CLIENT_I_DN_CN |
被更名 |
SSL_CLIENT_IEMAIL |
SSL_CLIENT_I_DN_Email |
被更名 |
SSL_CLIENT_IO |
SSL_CLIENT_I_DN_O |
被更名 |
SSL_CLIENT_IOU |
SSL_CLIENT_I_DN_OU |
被更名 |
SSL_CLIENT_IC |
SSL_CLIENT_I_DN_C |
被更名 |
SSL_CLIENT_ISP |
SSL_CLIENT_I_DN_SP |
被更名 |
SSL_CLIENT_IL |
SSL_CLIENT_I_DN_L |
被更名 |
SSL_EXPORT |
SSL_CIPHER_EXPORT |
被更名 |
SSL_KEYSIZE |
SSL_CIPHER_ALGKEYSIZE |
被更名 |
SSL_SECKEYSIZE |
SSL_CIPHER_USEKEYSIZE |
被更名 |
SSL_SSLEAY_VERSION |
SSL_VERSION_LIBRARY |
被更名 |
SSL_STRONG_CRYPTO |
- |
mod_ssl不支持 |
SSL_SERVER_KEY_EXP |
- |
mod_ssl不支持 |
SSL_SERVER_KEY_ALGORITHM |
- |
mod_ssl不支持 |
SSL_SERVER_KEY_SIZE |
- |
mod_ssl不支持 |
SSL_SERVER_SESSIONDIR |
- |
mod_ssl不支持 |
SSL_SERVER_CERTIFICATELOGDIR |
- |
mod_ssl不支持 |
SSL_SERVER_CERTFILE |
- |
mod_ssl不支持 |
SSL_SERVER_KEYFILE |
- |
mod_ssl不支持 |
SSL_SERVER_KEYFILETYPE |
- |
mod_ssl不支持 |
SSL_CLIENT_KEY_EXP |
- |
mod_ssl不支持 |
SSL_CLIENT_KEY_ALGORITHM |
- |
mod_ssl不支持 |
SSL_CLIENT_KEY_SIZE |
- |
mod_ssl不支持 |
如果mod_ssl被靜態(tài)編譯進Apache或者被動態(tài)加載(以DSO方式),則可以使用參考文檔中說明的由mod_log_config
提供的自定義日志格式。但是為了向下兼容,不能使用用于擴展任何模塊中任何變量的擴展格式"%{
varname}x
"和附加的密碼格式"%{
name}c
"。表3列出了已實現(xiàn)的格式。
Function Call | 格式說明 |
---|---|
%...{version}c |
SSL協(xié)議版本 |
%...{cipher}c |
SSL密碼 |
%...{subjectdn}c |
客戶證書的 Subject Distinguished Name |
%...{issuerdn}c |
客戶證書的 Issuer Distinguished Name |
%...{errcode}c |
客戶證書的出錯代碼(數(shù)值) |
%...{errstr}c |
客戶證書的出錯信息(文字) |