所有PC都是兼容的。但是其中一些比另一些更兼容。
-- 无名氏
本文讨论对其他SSL方案的向下兼容性。mod_ssl并不是Apache唯一存在的SSL方案,另外还有四种主要的产品:Ben Laurie的免费的Apache-SSL(出现在1998年,与mod_ssl同源),RedHat商业化的Secure Web Server(基于mod_ssl),Covalent商业化的Raven SSL Module(同样基于mod_ssl)和C2Net的商业化产品Stronghold(直到Stringhold2.x都基于一个不同的演化分支Sioux,从Stronghold3.x起基于mod_ssl)。
使用mod_ssl的原因是,mod_ssl几乎提供了在大多数情况下能够兼容其他方案的功能的超集。事实上,兼容性包括三个方面:配置指令、环境变量和自定义日志功能。
为了兼容SSL方案的配置指令,我们做了一个简单的对应:有直接对应的指令则简单对应,没有直接对应的指令则会在日志文件中产生警告信息。表1列出已实现对应的指令。目前仅对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 | 已强化 | 
| SSLLogFilefile | SSLLogfile | 已强化 | 
| SSLRequiredCiphersspec | SSLCipherSuitespec | 被更名 | 
| SSLRequireCipherc1 ... | SSLRequire %{SSL_CIPHER} in {"c1", 
...} | 无显著改变 | 
| SSLBanCipherc1 ... | SSLRequire not (%{SSL_CIPHER} in {"c1", 
...}) | 无显著改变 | 
| SSLFakeBasicAuth | SSLOptions +FakeBasicAuth | 被合并 | 
| SSLCacheServerPathdir | - | 已废除 | 
| SSLCacheServerPortinteger | - | 已废除 | 
| Apache-SSL 1.x 兼容性: | ||
| SSLExportClientCertificates | SSLOptions +ExportCertData | 被合并 | 
| SSLCacheServerRunDirdir | - | 不再支持 | 
| Sioux 1.x 兼容性: | ||
| SSL_CertFilefile | SSLCertificateFilefile | 被更名 | 
| SSL_KeyFilefile | SSLCertificateKeyFilefile | 被更名 | 
| SSL_CipherSuitearg | SSLCipherSuitearg | 被更名 | 
| SSL_X509VerifyDirarg | SSLCACertificatePatharg | 被更名 | 
| SSL_Logfile | SSLLogFilefile | 被更名 | 
| SSL_Connectflag | SSLEngineflag | 被更名 | 
| SSL_ClientAutharg | SSLVerifyClientarg | 被更名 | 
| SSL_X509VerifyDeptharg | SSLVerifyDeptharg | 被更名 | 
| SSL_FetchKeyPhraseFromarg | - | 没有直接的对应;使用:SSLPassPhraseDialog | 
| SSL_SessionDirdir | - | 没有直接的对应;使用:SSLSessionCache | 
| SSL_Requireexpr | - | 没有直接的对应;使用:SSLRequire | 
| SSL_CertFileTypearg | - | 不再支持 | 
| SSL_KeyFileTypearg | - | 不再支持 | 
| SSL_X509VerifyPolicyarg | - | 不再支持 | 
| SSL_LogX509Attributesarg | - | 不再支持 | 
| Stronghold 2.x 兼容性: | ||
| StrongholdAcceleratordir | - | 不再支持 | 
| StrongholdKeydir | - | 不再支持 | 
| StrongholdLicenseFiledir | - | 不再支持 | 
| SSLFlagflag | SSLEngineflag | 被更名 | 
| SSLSessionLockFilefile | SSLMutexfile | 被更名 | 
| SSLCipherListspec | SSLCipherSuitespec | 被更名 | 
| RequireSSL | SSLRequireSSL | 被更名 | 
| SSLErrorFilefile | - | 不再支持 | 
| SSLRootdir | - | 不再支持 | 
| SSL_CertificateLogDirdir | - | 不再支持 | 
| AuthCertDirdir | - | 不再支持 | 
| SSL_Groupname | - | 不再支持 | 
| SSLProxyMachineCertPathdir | - | 不再支持 | 
| SSLProxyMachineCertFilefile | - | 不再支持 | 
| SSLProxyCACertificatePathdir | - | 不再支持 | 
| SSLProxyCACertificateFilefile | - | 不再支持 | 
| SSLProxyVerifyDepthnumber | - | 不再支持 | 
| SSLProxyCipherListspec | - | 不再支持 | 
当使用"SSLOptions +CompatEnvVars"时,会产生附加的、对应于现存官方mod_ssl变量的环境变量。表2列出了已实现的变量的演变。
| 旧变量 | 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被静态编译进Apache或者被动态加载(以DSO方式),则可以使用参考文档中说明的由mod_log_config提供的自定义日志格式。但是为了向下兼容,不能使用用于扩展任何模块中任何变量的扩展格式"%{varname}x"和附加的密码格式"%{name}c"。表3列出了已实现的格式。
| Function Call | 格式说明 | 
|---|---|
| %...{version}c | SSL协议版本 | 
| %...{cipher}c | SSL密码 | 
| %...{subjectdn}c | 客户证书的 Subject Distinguished Name | 
| %...{issuerdn}c | 客户证书的 Issuer Distinguished Name | 
| %...{errcode}c | 客户证书的出错代码(数值) | 
| %...{errstr}c | 客户证书的出错信息(文字) |