/******************************************************************************************************************** 声明:本文档用于学习与研究可以自由转载,无论以何种形式发布都必须保留完整的版权声明,商业用途不得转载.本人能力有限,如有问题欢迎交流与指正。 网站: 论坛:/forum/forum.html 邮件:rainbow_zrh@sina.com webmaster@infosecurity.org.cn *********************************************************************************************************************/ 一、配置处理函数 在ssl_engine_config.c中实现下面列出的函数。主要功能是从配置文件中读入配置,然后对全局的结构体ap_global_ctx进行赋值。详细描述如下: 1、ssl_config_global_create函数 【功能】:建立全局对象ap_global_ctx。 【过程描述】:首先调用 mc = ap_ctx_get(ap_global_ctx, "ssl_module")取出mod_ssl全局的结构体放在mc中,用ap_make_sub_pool 创建内存池,ap_palloc 为SSLModConfigRec分配内存。成功后为结构体赋值。 ap_hook_use("ap::mod_ssl::vendor::config_global_create",AP_HOOK_SIG2(void,ptr), AP_HOOK_MODE_ALL, mc);调用ap::mod_ssl::vendor::config_global_create钩子函数 最后调用ap_ctx_set (ap_global_ctx, "ssl_module", mc)保存到Apache的全局上下文中。 2、ssl_config_global_create函数 【功能】:ssl_engine_config.c中 【过程描述】:取全局的结构体,对bFixed标志赋值。 3、ssl_config_server_create函数 【功能】:ssl_engine_config.c中,建立per-server的SSL配置。 【过程描述】:调用ssl_config_global_create函数,创建全局的结构体ap_global_ctx。调用ap_palloc为SSLSrvConfigRec分配内存,并赋值。由ap_hook_use函数调用ap::mod_ssl::vendor::config_server_create钩子函数。返回SSLSrvConfigRec结构指针。 4、ssl_config_server_merge函数 【功能】:ssl_engine_config.c中,合并per-server的SSL配置。 【过程描述】:basev与addv服务器配置,返回新的服务器配置。 5、ssl_config_perdir_create函数 【功能】:ssl_engine_config.c中,建立per-dir的SSL配置。 【过程描述】:调用ap_palloc为SSLDirConfigRec分配内存,并赋值。由ap_hook_use函数调用ap::mod_ssl::vendor::config_perdir_create钩子函数。返回SSLDirConfigRec结构指针。 6、ssl_config_perdir_merge函数 【功能】:ssl_engine_config.c中,合并per-dir的SSL配置。 【过程描述】:basev与addv服务器配置,返回新的服务器配置。 其中,由ap_hook_use函数调用ap::mod_ssl::vendor::config_perdir_merge钩子函数。 7、特殊指令配置函数 7.1 ssl_cmd_SSLMutex函数 【功能】:ssl_engine_config.c中,配置互斥体。 【过程描述】:调用ap_check_cmd_context检查配置,按参数选择文件方式(SSL_MUTEXMODE_FILE)或信号量方式(SSL_MUTEXMODE_SEM)实现互斥。 7.2 ssl_cmd_SSLPassPhraseDialog函数 【功能】:ssl_engine_config.c中,配置私钥密码。 【过程描述】: 7.3 ssl_cmd_SSLCryptoDevice函数 【功能】:ssl_engine_config.c中,配置ENGINE。 【过程描述】:处理ENGINE,ENGINE_load_builtin_engines装入ENGINE,ENGINE_by_id取特定ENGINE。 7.4 ssl_cmd_SSLRandomSeed函数 【功能】:ssl_engine_config.c中,配置随机数生成源。 【过程描述】:判断第2个参数是启动还是连接时创建。第3个参数是源在哪里。 7.5 ssl_cmd_SSLEngine函数 【功能】:ssl_engine_config.c中,配置SSL协议引擎是否启用。 【过程描述】:设置SSLSrvConfigRec中的变量bEnabled,为TRUE或FALSE。 7.6 ssl_cmd_SSLCipherSuite函数 【功能】:ssl_engine_config.c中,配置加密套件。 【过程描述】:设置SSLSrvConfigRec中的变量szCipherSuite为套件值。 7.7 ssl_cmd_SSLCertificateFile函数 【功能】:ssl_engine_config.c中,配置服务器证书文件。 【过程描述】: 7.8 ssl_cmd_SSLCertificateKeyFile函数 【功能】:ssl_engine_config.c中,配置服务器私钥文件。 【过程描述】:设置从0到SSL_AIDX_MAX个,SSLSrvConfigRec中的变量szPrivateKeyFile [I]为私钥文件。 7.9 ssl_cmd_SSLCertificateChainFile函数 【功能】:ssl_engine_config.c中,配置。 【过程描述】: 7.10 ssl_cmd_SSLCACertificatePath函数 【功能】:ssl_engine_config.c中,配置CA证书文件路径。 【过程描述】: 设置SSLSrvConfigRec中的变量szCACertificatePath为CA证书文件路径。 7.11 ssl_cmd_SSLCACertificateFile函数 【功能】:ssl_engine_config.c中,配置CA证书文件。 【过程描述】: 设置SSLSrvConfigRec中的变量szCACertificateFile为CA证书文件。 7.12 ssl_cmd_SSLCARevocationPath函数 【功能】:ssl_engine_config.c中,配置CA证书吊销列表文件路径。 【过程描述】: 设置SSLSrvConfigRec中的变量szCARevocationPath为CA证书吊销列表文件路径。 7.13 ssl_cmd_SSLCARevocationFile函数 【功能】:ssl_engine_config.c中,配置CA证书吊销列表文件。 【过程描述】: 设置SSLSrvConfigRec中的变量szCARevocationFile为CA证书吊销列表文件。 7.14 ssl_cmd_SSLVerifyClient函数 【功能】:ssl_engine_config.c中,配置服务器对客户端的验证方式。 【过程描述】: 7.15 ssl_cmd_SSLVerifyDepth函数 【功能】:ssl_engine_config.c中,配置服务器对客户端的验证深度。 【过程描述】:设置SSLSrvConfigRec中的变量nVerifyDepth为深度。 设置SSLSrvConfigRec中的变量szCACertificateFile为CA证书文件。 7.16 ssl_cmd_SSLSessionCache函数 【功能】:ssl_engine_config.c中,配置SSL会话缓存的方式。 【过程描述】:可以为3种方式之一:none,dbm,shm。 设置SSLSrvConfigRec中的变量nSessionCacheMode为方式。SzSessionCacheDataFile数据文件。最后由ap_hook_use调用ap::mod_ssl::vendor::cmd_sslsessioncache钩子函数。 7.17 ssl_cmd_SSLSessionCacheTimeout函数 【功能】:ssl_engine_config.c中,配置会话缓存过多久就失效了,以秒为单位。 【过程描述】:设置SSLSrvConfigRec中的变量nSessionCacheTimeout为失效时间。 7.18 ssl_cmd_SSLLog函数 【功能】:ssl_engine_config.c中,配置日志文件。 【过程描述】:设置SSLSrvConfigRec中的变量szLogFile为日志文件。 7.19 ssl_cmd_SSLLogLevel函数 【功能】:ssl_engine_config.c中,配置向日志中记录文件的内容,用法有点象Log4J。 【过程描述】:none,error,warn,info,debug.后面一层包含前面所有的内容。 7.20 ssl_cmd_SSLOptions函数 【功能】:ssl_engine_config.c中,配置SSL的更多内容。 【过程描述】: 7.21 ssl_cmd_SSLProtocol函数 【功能】:ssl_engine_config.c中,配置SSL协议。 【过程描述】: 8、SSL代理指令配置 配置与上面所讲的大同小异,这里略过。 8.1 ssl_cmd_SSLProxyProtocol函数 【功能】:ssl_engine_config.c中,配置SSL代理协议。 【过程描述】:设置SSLSrvConfigRec中的变量nProtocol为使用的SSL协议。 8.2 ssl_cmd_SSLProxyCipherSuite函数 8.3 ssl_cmd_SSLProxyVerify函数 8.4 ssl_cmd_SSLProxyVerifyDepth函数 8.5 ssl_cmd_SSLProxyCACertificateFile函数 8.6 ssl_cmd_SSLProxyCACertificatePath函数 8.7 ssl_cmd_SSLProxyMachineCertificateFile函数 8.8 ssl_cmd_SSLProxyMachineCertificatePath函数
|