SSL/TLS 强加密:兼容性

本页涵盖了 mod_ssl 与其他 SSL 解决方案之间的向后兼容性。 mod_ssl 并不是 Apache 唯一的 SSL 解决方案;还有(或曾经提供)另外四个产品:Ben Laurie 的免费提供的Apache-SSL(最初是 mod_ssl 的来源,1998 年从那里获得),Red Hat 的商业 Secure Web Server(基于 mod_ssl),Covalent 的商业 Raven SSL 模块(也基于 mod_ssl),最后是 C2Net(现在是 Red Hat)的商业产品Stronghold(基于一个不同的演进分支,从 Stronghold 2.x 开始命名为 Sioux,从 Stronghold 3.x 开始基于 mod_ssl)。

mod_ssl 主要提供所有其他解决方案功能的超集,因此很容易从较旧的模块之一迁移到 mod_ssl。较早的 SSL 解决方案使用的配置指令和环境变量名称与 mod_ssl 中使用的配置指令和环境变量名称不同;此处包含 Map 表,以提供 mod_ssl 使用的等效表。

Configuration Directives

Table 1给出了 Apache-SSL 1.x 和 mod_ssl 2.0.x 使用的配置指令之间的 Map。由于这些接口中的特殊功能(mod_ssl 不提供),因此 Sioux 1.x 和 Stronghold 2.x 的 Map 仅是部分的。

表 1:配置指令 Map

Old Directivemod_ssl DirectiveComment
Apache-SSL 1.x 和 mod_ssl 2.0.x 兼容性:
SSLEnableSSLEngine oncompactified
SSLDisableSSLEngine offcompactified
SSLLogFile 文件``而是使用按模块的LogLevel设置。
SSLRequiredCiphers 规格SSLCipherSuite 规格renamed
SSLRequireCipher * c1 * ...SSLRequire %{SSL_CIPHER} in {" * c1 * ", ...}generalized
SSLBanCipher * c1 * ...SSLRequire not (%{SSL_CIPHER} in {" * c1 * ", ...})generalized
SSLFakeBasicAuthSSLOptions +FakeBasicAuthmerged
SSLCacheServerPath * dir *-functionality removed
SSLCacheServerPort 整数-functionality removed
Apache-SSL 1.x 兼容性:
SSLExportClientCertificatesSSLOptions +ExportCertDatamerged
SSLCacheServerRunDir * dir *-不支持的功能
Sioux 1.x 兼容性:
SSL_CertFile 文件SSLCertificateFile 文件renamed
SSL_KeyFile 文件SSLCertificateKeyFile 文件renamed
SSL_CipherSuite * arg *SSLCipherSuite * arg *renamed
SSL_X509VerifyDir * arg *SSLCACertificatePath * arg *renamed
SSL_Log 文件-而是使用按模块的LogLevel设置。
SSL_Connect 标志SSLEngine 标志renamed
SSL_ClientAuth * arg *SSLVerifyClient * arg *renamed
SSL_X509VerifyDepth * arg *SSLVerifyDepth * arg *renamed
SSL_FetchKeyPhraseFrom * arg *-不可直接 Map;使用 SSLPassPhraseDialog
SSL_SessionDir * dir *-不可直接 Map;使用 SSLSessionCache
SSL_Require * expr *-不可直接 Map;使用 SSLRequire
SSL_CertFileType * arg *-不支持的功能
SSL_KeyFileType * arg *-不支持的功能
SSL_X509VerifyPolicy * arg *-不支持的功能
SSL_LogX509Attributes * arg *-不支持的功能
要塞 2.x 兼容性:
StrongholdAccelerator 引擎SSLCryptoDevice 引擎renamed
StrongholdKey * dir *-不需要功能
StrongholdLicenseFile * dir *-不需要功能
SSLFlag 标志SSLEngine 标志renamed
SSLSessionLockFile 文件SSLMutex 文件renamed
SSLCipherList 规格SSLCipherSuite 规格renamed
RequireSSLSSLRequireSSLrenamed
SSLErrorFile 文件-不支持的功能
SSLRoot * dir *-不支持的功能
SSL_CertificateLogDir * dir *-不支持的功能
AuthCertDir * dir *-不支持的功能
SSL_Group 名称-不支持的功能
SSLProxyMachineCertPath * dir *SSLProxyMachineCertificatePath * dir *renamed
SSLProxyMachineCertFile 文件SSLProxyMachineCertificateFile 文件renamed
SSLProxyCipherList 规格SSLProxyCipherSpec 规格renamed

Environment Variables

较旧的 SSL 解决方案使用的环境变量名称与 mod_ssl 使用的名称之间的 Map 在Table 2中给出。

表 2:环境变量推导

Old Variablemod_ssl VariableComment
SSL_PROTOCOL_VERSIONSSL_PROTOCOLrenamed
SSLEAY_VERSIONSSL_VERSION_LIBRARYrenamed
HTTPS_SECRETKEYSIZESSL_CIPHER_USEKEYSIZErenamed
HTTPS_KEYSIZESSL_CIPHER_ALGKEYSIZErenamed
HTTPS_CIPHERSSL_CIPHERrenamed
HTTPS_EXPORTSSL_CIPHER_EXPORTrenamed
SSL_SERVER_KEY_SIZESSL_CIPHER_ALGKEYSIZErenamed
SSL_SERVER_CERTIFICATESSL_SERVER_CERTrenamed
SSL_SERVER_CERT_STARTSSL_SERVER_V_STARTrenamed
SSL_SERVER_CERT_ENDSSL_SERVER_V_ENDrenamed
SSL_SERVER_CERT_SERIALSSL_SERVER_M_SERIALrenamed
SSL_SERVER_SIGNATURE_ALGORITHMSSL_SERVER_A_SIGrenamed
SSL_SERVER_DNSSL_SERVER_S_DNrenamed
SSL_SERVER_CNSSL_SERVER_S_DN_CNrenamed
SSL_SERVER_EMAILSSL_SERVER_S_DN_Emailrenamed
SSL_SERVER_OSSL_SERVER_S_DN_Orenamed
SSL_SERVER_OUSSL_SERVER_S_DN_OUrenamed
SSL_SERVER_CSSL_SERVER_S_DN_Crenamed
SSL_SERVER_SPSSL_SERVER_S_DN_SPrenamed
SSL_SERVER_LSSL_SERVER_S_DN_Lrenamed
SSL_SERVER_IDNSSL_SERVER_I_DNrenamed
SSL_SERVER_ICNSSL_SERVER_I_DN_CNrenamed
SSL_SERVER_IEMAILSSL_SERVER_I_DN_Emailrenamed
SSL_SERVER_IOSSL_SERVER_I_DN_Orenamed
SSL_SERVER_IOUSSL_SERVER_I_DN_OUrenamed
SSL_SERVER_ICSSL_SERVER_I_DN_Crenamed
SSL_SERVER_ISPSSL_SERVER_I_DN_SPrenamed
SSL_SERVER_ILSSL_SERVER_I_DN_Lrenamed
SSL_CLIENT_CERTIFICATESSL_CLIENT_CERTrenamed
SSL_CLIENT_CERT_STARTSSL_CLIENT_V_STARTrenamed
SSL_CLIENT_CERT_ENDSSL_CLIENT_V_ENDrenamed
SSL_CLIENT_CERT_SERIALSSL_CLIENT_M_SERIALrenamed
SSL_CLIENT_SIGNATURE_ALGORITHMSSL_CLIENT_A_SIGrenamed
SSL_CLIENT_DNSSL_CLIENT_S_DNrenamed
SSL_CLIENT_CNSSL_CLIENT_S_DN_CNrenamed
SSL_CLIENT_EMAILSSL_CLIENT_S_DN_Emailrenamed
SSL_CLIENT_OSSL_CLIENT_S_DN_Orenamed
SSL_CLIENT_OUSSL_CLIENT_S_DN_OUrenamed
SSL_CLIENT_CSSL_CLIENT_S_DN_Crenamed
SSL_CLIENT_SPSSL_CLIENT_S_DN_SPrenamed
SSL_CLIENT_LSSL_CLIENT_S_DN_Lrenamed
SSL_CLIENT_IDNSSL_CLIENT_I_DNrenamed
SSL_CLIENT_ICNSSL_CLIENT_I_DN_CNrenamed
SSL_CLIENT_IEMAILSSL_CLIENT_I_DN_Emailrenamed
SSL_CLIENT_IOSSL_CLIENT_I_DN_Orenamed
SSL_CLIENT_IOUSSL_CLIENT_I_DN_OUrenamed
SSL_CLIENT_ICSSL_CLIENT_I_DN_Crenamed
SSL_CLIENT_ISPSSL_CLIENT_I_DN_SPrenamed
SSL_CLIENT_ILSSL_CLIENT_I_DN_Lrenamed
SSL_EXPORTSSL_CIPHER_EXPORTrenamed
SSL_KEYSIZESSL_CIPHER_ALGKEYSIZErenamed
SSL_SECKEYSIZESSL_CIPHER_USEKEYSIZErenamed
SSL_SSLEAY_VERSIONSSL_VERSION_LIBRARYrenamed
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 时,如参考章节中所述,mod_log_config自定义日志格式存在附加功能。除了可以用于扩展任何模块提供的任何变量的``````+215+``+216+`''加密格式功能,用于向后兼容。当前实现的函数调用在Table 3中列出。

表 3:自定义日志密码功能

Function CallDescription
%...{version}cSSL 协议版本
%...{cipher}cSSL cipher
%...{subjectdn}cClient 证书主题专有名称
%...{issuerdn}cClient 证书颁发者的专有名称
%...{errcode}c证书验证错误(数字)
%...{errstr}c证书验证错误(字符串)