Apache 2.0手册中文版翻译项目 [本文译者: kajaa * ]

项目说明 | 项目进度 | 项目讨论区 | Apache手册中文版

 


SSL/TLS强加密:兼容性 - Apache HTTP服务器
<-
Apache主站 > HTTP服务器 > 文档 > 2.0版本 > SSL/TLS

SSL/TLS强加密:兼容性

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几乎提供了在大多数情况下能够兼容其他方案的功能的超集。 事实上,兼容性包括三个方面:配置指令、环境变量和自定义日志功能。

top

配置指令

为了兼容SSL方案的配置指令,我们做了一个简单的对应: 有直接对应的指令则简单对应,没有直接对应的指令会在日志文件中产生警告信息。 Table 1列出已实现对应的指令。 目前仅对Apache-SSL 1.x和mod_ssl 2.0.x有完整的向下兼容支持, 而仅支持Sioux 1.x和Stronghold 2.x的一部分,由于其接口中的特殊功能mod_ssl(尚)不支持。

Table 1: 配置指令的对应

以前的指令mod_ssl指令说明
Apache-SSL 1.x & mod_ssl 2.0.x compatibility:
SSLEnableSSLEngine on已强化
SSLDisableSSLEngine off已强化
SSLLogFile fileSSLLog file已强化
SSLRequiredCiphers specSSLCipherSuite spec被重命名
SSLRequireCipher c1 ...SSLRequire %{SSL_CIPHER} in {"c1", ...}没有显著改变
SSLBanCipher c1 ...SSLRequire not (%{SSL_CIPHER} in {"c1", ...})没有显著改变
SSLFakeBasicAuthSSLOptions +FakeBasicAuth被合并
SSLCacheServerPath dir-已废除
SSLCacheServerPort integer-已废除
Apache-SSL 1.x compatibility:
SSLExportClientCertificatesSSLOptions +ExportCertData被合并
SSLCacheServerRunDir dir-不再支持
Sioux 1.x compatibility:
SSL_CertFile fileSSLCertificateFile file被重命名
SSL_KeyFile fileSSLCertificateKeyFile file被重命名
SSL_CipherSuite argSSLCipherSuite arg被重命名
SSL_X509VerifyDir argSSLCACertificatePath arg被重命名
SSL_Log fileSSLLogFile file被重命名
SSL_Connect flagSSLEngine flag被重命名
SSL_ClientAuth argSSLVerifyClient arg被重命名
SSL_X509VerifyDepth argSSLVerifyDepth 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 flagSSLEngine flag被重命名
SSLSessionLockFile fileSSLMutex file被重命名
SSLCipherList specSSLCipherSuite spec被重命名
RequireSSLSSLRequireSSL被重命名
SSLErrorFile file-不再支持
SSLRoot dir-不再支持
SSL_CertificateLogDir dir-不再支持
AuthCertDir dir-不再支持
SSL_Group name-不再支持
SSLProxyMachineCertPath dir-不再支持
SSLProxyMachineCertFile file-不再支持
SSLProxyCACertificatePath dir-不再支持
SSLProxyCACertificateFile file-不再支持
SSLProxyVerifyDepth number-不再支持
SSLProxyCipherList spec-不再支持
top

环境变量

当使用``SSLOptions +CompatEnvVars''时, 会产生附加的对应于现存的官方的mod_ssl变量的环境变量。Table 2列出了已实现的变量的演变。

Table 2: 环境变量的演变

以前的变量mod_ssl变量说明
SSL_PROTOCOL_VERSIONSSL_PROTOCOL被重命名
SSLEAY_VERSIONSSL_VERSION_LIBRARY被重命名
HTTPS_SECRETKEYSIZESSL_CIPHER_USEKEYSIZE被重命名
HTTPS_KEYSIZESSL_CIPHER_ALGKEYSIZE被重命名
HTTPS_CIPHERSSL_CIPHER被重命名
HTTPS_EXPORTSSL_CIPHER_EXPORT被重命名
SSL_SERVER_KEY_SIZESSL_CIPHER_ALGKEYSIZE被重命名
SSL_SERVER_CERTIFICATESSL_SERVER_CERT被重命名
SSL_SERVER_CERT_STARTSSL_SERVER_V_START被重命名
SSL_SERVER_CERT_ENDSSL_SERVER_V_END被重命名
SSL_SERVER_CERT_SERIALSSL_SERVER_M_SERIAL被重命名
SSL_SERVER_SIGNATURE_ALGORITHMSSL_SERVER_A_SIG被重命名
SSL_SERVER_DNSSL_SERVER_S_DN被重命名
SSL_SERVER_CNSSL_SERVER_S_DN_CN被重命名
SSL_SERVER_EMAILSSL_SERVER_S_DN_Email被重命名
SSL_SERVER_OSSL_SERVER_S_DN_O被重命名
SSL_SERVER_OUSSL_SERVER_S_DN_OU被重命名
SSL_SERVER_CSSL_SERVER_S_DN_C被重命名
SSL_SERVER_SPSSL_SERVER_S_DN_SP被重命名
SSL_SERVER_LSSL_SERVER_S_DN_L被重命名
SSL_SERVER_IDNSSL_SERVER_I_DN被重命名
SSL_SERVER_ICNSSL_SERVER_I_DN_CN被重命名
SSL_SERVER_IEMAILSSL_SERVER_I_DN_Email被重命名
SSL_SERVER_IOSSL_SERVER_I_DN_O被重命名
SSL_SERVER_IOUSSL_SERVER_I_DN_OU被重命名
SSL_SERVER_ICSSL_SERVER_I_DN_C被重命名
SSL_SERVER_ISPSSL_SERVER_I_DN_SP被重命名
SSL_SERVER_ILSSL_SERVER_I_DN_L被重命名
SSL_CLIENT_CERTIFICATESSL_CLIENT_CERT被重命名
SSL_CLIENT_CERT_STARTSSL_CLIENT_V_START被重命名
SSL_CLIENT_CERT_ENDSSL_CLIENT_V_END被重命名
SSL_CLIENT_CERT_SERIALSSL_CLIENT_M_SERIAL被重命名
SSL_CLIENT_SIGNATURE_ALGORITHMSSL_CLIENT_A_SIG被重命名
SSL_CLIENT_DNSSL_CLIENT_S_DN被重命名
SSL_CLIENT_CNSSL_CLIENT_S_DN_CN被重命名
SSL_CLIENT_EMAILSSL_CLIENT_S_DN_Email被重命名
SSL_CLIENT_OSSL_CLIENT_S_DN_O被重命名
SSL_CLIENT_OUSSL_CLIENT_S_DN_OU被重命名
SSL_CLIENT_CSSL_CLIENT_S_DN_C被重命名
SSL_CLIENT_SPSSL_CLIENT_S_DN_SP被重命名
SSL_CLIENT_LSSL_CLIENT_S_DN_L被重命名
SSL_CLIENT_IDNSSL_CLIENT_I_DN被重命名
SSL_CLIENT_ICNSSL_CLIENT_I_DN_CN被重命名
SSL_CLIENT_IEMAILSSL_CLIENT_I_DN_Email被重命名
SSL_CLIENT_IOSSL_CLIENT_I_DN_O被重命名
SSL_CLIENT_IOUSSL_CLIENT_I_DN_OU被重命名
SSL_CLIENT_ICSSL_CLIENT_I_DN_C被重命名
SSL_CLIENT_ISPSSL_CLIENT_I_DN_SP被重命名
SSL_CLIENT_ILSSL_CLIENT_I_DN_L被重命名
SSL_EXPORTSSL_CIPHER_EXPORT被重命名
SSL_KEYSIZESSL_CIPHER_ALGKEYSIZE被重命名
SSL_SECKEYSIZESSL_CIPHER_USEKEYSIZE被重命名
SSL_SSLEAY_VERSIONSSL_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不支持
top

自定义日志功能

如果mod_ssl被编译进入Apache或者被加载(以DSO方式), 则可以使用参考文档中说明的由mod_log_config提供的自定义日志格式。 但是为了向下兼容,不能使用用来扩展任何模块中任何变量的扩展格式 ``%{varname}x'', 和附加的密码格式``%{name}c''。Table 3列出了已实现的格式。

Table 3: 自定义日志加密格式

格式说明
%...{version}c SSL协议版本
%...{cipher}c SSL密码
%...{subjectdn}c 客户证书的Subject Distinguished Name
%...{issuerdn}c 客户证书的Issuer Distinguished Name
%...{errcode}c 客户证书的出错代码(数值的)
%...{errstr}c 客户证书的出错信息(文字说明)

 


项目维护者: kajaa [本文译者: kajaa * ]

项目说明 | 项目进度 | 项目讨论区 | Apache手册中文版