Apache HTTP服务器 2.0版本
All PCs are compatible. But some of them are more compatible than others.
-- Unknown
本文讨论对其他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 (直到Stringhold 2.x都基于一个不同的演化分支Sioux,从Stronghold 3.x起基于mod_ssl)。
使用mod_ssl的原因是,mod_ssl几乎提供了在大多数情况下能够兼容其他方案的功能的超集。 事实上,兼容性包括三个方面:配置指令、环境变量和自定义日志功能。
为了兼容SSL方案的配置指令,我们做了一个简单的对应: 有直接对应的指令则简单对应,没有直接对应的指令会在日志文件中产生警告信息。 Table 1列出已实现对应的指令。 目前仅对Apache-SSL 1.x和mod_ssl 2.0.x有完整的向下兼容支持, 而仅支持Sioux 1.x和Stronghold 2.x的一部分,由于其接口中的特殊功能mod_ssl(尚)不支持。
以前的指令 | mod_ssl指令 | 说明 |
---|---|---|
Apache-SSL 1.x & mod_ssl 2.0.x compatibility: | ||
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 compatibility: | ||
SSLExportClientCertificates | SSLOptions +ExportCertData | 被合并 |
SSLCacheServerRunDir dir | - | 不再支持 |
Sioux 1.x compatibility: | ||
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 | - | 没有直接的对应;使用SSLPassPhraseDialog |
SSL_SessionDir dir | - | 没有直接的对应;使用SSLSessionCache |
SSL_Require expr | - | 没有直接的对应;使用SSLRequire |
SSL_CertFileType arg | - | 不再支持 |
SSL_KeyFileType arg | - | 不再支持 |
SSL_X509VerifyPolicy arg | - | 不再支持 |
SSL_LogX509Attributes arg | - | 不再支持 |
Stronghold 2.x compatibility: | ||
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
''时,
会产生附加的对应于现存的官方的mod_ssl变量的环境变量。Table 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
''。Table 3列出了已实现的格式。
格式 | 说明 |
---|---|
%...{version}c | SSL协议版本 |
%...{cipher}c | SSL密码 |
%...{subjectdn}c | 客户证书的Subject Distinguished Name |
%...{issuerdn}c | 客户证书的Issuer Distinguished Name |
%...{errcode}c | 客户证书的出错代码(数值的) |
%...{errstr}c | 客户证书的出错信息(文字说明) |