©
Ce document utiliseManuel du site Web PHP chinoisLibérer
所有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 |
客户证书的出错信息(文字) |