




已阅读5页,还剩4页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Apache-增加C+和SSL模块的支持一、 Apache-compile-setupapache的httpd-2.2.15.tar.gz版本配置:# -enable-mods-shared=most1、./configure -enable-ssl -enable-so2、make3、make install二、 Apache-module-cpp1、pls view Makefile for cpp first;2、make (replace apxs -c cpphello.c);3、apxs -i -a -n cpphello mod_cpphello.so4、vi httpd.conf (add the following contents) LoadFile /usr/lib/libstdc+-libc6.2-2.so.3 LoadModule cpphello_module modules/mod_cpphello.so SetHandler cpphello 5、httpd -k start三、 Apache-module-teching1、apxs -g -n hello2、apxs -c mod_hello.c3、apxs -i -a -n hello mod_hello.la四、 Apache-openssl-usingcd /usr/local/apache2/conf/1、openssl genrsa -des3 -out server.key 10242、openssl req -new -key server.key -out server.csr3、openssl x509 -req -days 1000 -in server.csr -signkey server.key -out server.crt4、chmod 400 server.key5、chmod 400 server.crt6、vi httpd.conf# Secure (SSL/TLS) connectionsInclude conf/extra/httpd-ssl.conf7、./httpd -k start五、 httpd.conf增加C+# These paths are good for debian, you should edit the paths as# appropriate for your system.# Must load the standard c+ library in order to use modules which# were originally written in C+.LoadFile /usr/lib/libstdc+-libc6.2-2.so.3# And configure it.LoadModule cpphello_module modules/mod_cpphello.so SetHandler cpphello六、 Makefile# Makefile - Build procedure for fast3lpoad Apache module# This is a C+ module so things have to be handled a little differently.builddir=.top_srcdir=/usr/local/apache2top_builddir=/usr/local/apache2# include /usr/local/apache2/build/special.mk# the used toolsAPXS=/usr/local/apache2/bin/apxsAPACHECTL=/usr/local/apache2/bin/apachectl# Get all of apxss internal values.APXS_CC=$(APXS) -q CC APXS_TARGET=$(APXS) -q TARGET APXS_CFLAGS=$(APXS) -q CFLAGS APXS_SBINDIR=$(APXS) -q SBINDIR APXS_CFLAGS_SHLIB=$(APXS) -q CFLAGS_SHLIB APXS_INCLUDEDIR=$(APXS) -q INCLUDEDIR APXS_LD_SHLIB=$(APXS) -q LD_SHLIBAPXS_LIBEXECDIR=$(APXS) -q LIBEXECDIRAPXS_LDFLAGS_SHLIB=$(APXS) -q LDFLAGS_SHLIBAPXS_SYSCONFDIR=$(APXS) -q SYSCONFDIRAPXS_LIBS_SHLIB=$(APXS) -q LIBS_SHLIBCURL_LIBS_SHLIB=-lcurl -lnsl -lssl -lcrypto# the default targetall: mod_cpphello.so# compile the shared object file. use g+ instead of letting apxs call# ld so we end up with the right c+ stuff. We do this in two steps,# compile and link.# compilemod_cpphello.o: mod_cpphello.cppg+ -c -fPIC -I$(APXS_INCLUDEDIR) -I. $(APXS_CFLAGS) $(APXS_CFLAGS_SHLIB) -Wall -o $ $MyTest.o: MyTest.cpp MyTest.hg+ -c -fPIC -I. -Wall -o $ $# linkmod_cpphello.so: mod_cpphello.o MyTest.og+ -fPIC -shared -o $ $ $(APXS_LIBS_SHLIB) $(CURL_LIBS_SHLIB)# install the shared object file into Apache allinstall:$(APXS) -i -a -n cpphello mod_cpphello.so# display the apxs variablescheck_apxs_vars:echo APXS_CC $(APXS_CC);echo APXS_TARGET $(APXS_TARGET);echo APXS_CFLAGS $(APXS_CFLAGS);echo APXS_SBINDIR $(APXS_SBINDIR);echo APXS_CFLAGS_SHLIB $(APXS_CFLAGS_SHLIB);echo APXS_INCLUDEDIR $(APXS_INCLUDEDIR);echo APXS_LD_SHLIB $(APXS_LD_SHLIB);echo APXS_LIBEXECDIR $(APXS_LIBEXECDIR);echo APXS_LDFLAGS_SHLIB $(APXS_LDFLAGS_SHLIB);echo APXS_SYSCONFDIR $(APXS_SYSCONFDIR);echo APXS_LIBS_SHLIB $(APXS_LIBS_SHLIB)# cleanupclean:-rm -f *.so *.o *# install and activate shared object by reloading Apache to# force a reload of the shared object filereload: install restart# the general Apache start/restart/stop# proceduresstart:$(APACHECTL) startrestart:$(APACHECTL) restartstop:$(APACHECTL) stop七、 mod_cpphello.cpp/* * mod_cpphello.cpp - Apache sample cpphello module* Autogenerated via apxs -n cpphello -g* To play with this sample module first compile it into a* DSO file and install it into Apaches modules directory * by running:* $ apxs -c -i mod_cpphello.cpp* Then activate it in Apaches httpd.conf file for instance* for the URL /cpphello in as follows:* # httpd.conf* LoadModule cpphello_module modules/mod_cpphello.so* * SetHandler cpphello* * Then after restarting Apache via* $ apachectl restart* you immediately can request the URL /cpphello and watch for the* output of this module. This can be achieved for instance via:* $ lynx -mime_header http:/localhost/cpphello * The output should be similar to the following one:* HTTP/1.1 200 OK* Date: Tue, 31 Mar 1998 14:42:22 GMT* Server: Apache/1.3.4 (Unix)* Connection: close* Content-Type: text/html* * The sample page from mod_cpphello.cpp*/ #include httpd.h#include http_config.h#include http_protocol.h#include ap_config.h#include MyTest.h/* The sample content handler */static int cpphello_handler(request_rec *r) if (strcmp(r-handler, cpphello) return DECLINED; r-content_type = text/html; /if (!r-header_only)/ap_rputs(The sample page from mod_cpphello.cppn, r);MyTest mt;ap_rprintf(r, The cURL ret : %s n, mt.HttpsTest(); return OK;static void cpphello_register_hooks(apr_pool_t *p) ap_hook_handler(cpphello_handler, NULL, NULL, APR_HOOK_MIDDLE);/* Dispatch list for API hooks */module AP_MODULE_DECLARE_DATA cpphello_module = STANDARD20_MODULE_STUFF, NULL, /* create per-dir config structures */ NULL, /* merge per-dir config structures */ NULL, /* create per-server config structures */ NULL, /* merge per-server config structures */ NULL, /* table of config file commands */ cpphello_register_hooks /* register hooks */;八、 MyTest.cpp#include MyTest.hMyTest:MyTest()curl=curl_easy_init();MyTest:MyTest()curl_easy_cleanup(curl);curl=NULL;char* MyTest:HttpsTest()char* pRet=NULL;if(curl)curl_easy_setopt(curl, CURLOPT_URL, .hk/i-trade/singlelogin.jsp);#ifdef SKIP_PEER_VERIFICATIONcurl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, 0L);#endif#ifdef SKIP_HOSTNAME_VERFICATIONcurl_easy_setopt(curl, CURLOPT_SSL_VERIFYHOST, 0L);#endifCURLcode res = curl_easy_perform(curl);if(CURLE_OK = res)res = curl_easy_getinfo(curl, CURLINFO_CONTENT_TYPE, &pRet);return pRet;九、 MyTest.h#include #include #define SKIP_PEER_VERIFICATIONclass MyTestpublic:MyTest();virtual MyTest();char* HttpsTest();private:CURL *curl;十、 httpd.conf增加SSL# Secure (SSL/TLS) connectionsInclude conf/extra/httpd-ssl.conf# Note: The following must must be present to support# starting without SSL on platforms with no /dev/random equivalent# but a statically compiled-in mod_ssl.#SSLRandomSeed startup builtinSSLRandomSeed connect builtin十一、 server.crt-BEGIN CERTIFICATE-MIICeTCCAeICCQCdq6OvBB0bezANBgkqhkiG9w0BAQUFADCBgDELMAkGA1UEBhMCQ0gxEDAOBgNVBAgTB0JlaWppbmcxEDAOBgNVBAcTB0JlaWppbmcxCzAJBgNVBAoTAkpSMQwwCgYDVQQLEwNERVYxEDAOBgNVBAMTB0ZSRUVET00xIDAeBgkqhkiG9w0BCQEWEXlvbmdsaWxpdUB0b20uY29tMB4XDTEwMDUyNTA3MzIwNloXDTEzMDIxODA3MzIwNlowgYAxCzAJBgNVBAYTAkNIMRAwDgYDVQQIEwdCZWlqaW5nMRAwDgYDVQQHEwdCZWlqaW5nMQswCQYDVQQKEwJKUjEMMAoGA1UECxMDREVWMRAwDgYDVQQDEwdGUkVFRE9NMSAwHgYJKoZIhvcNAQkBFhF5b25nbGlsaXVAdG9tLmNvbTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAxFqiAK4V7mL+i1yX8RVyvmIZUGXLP2u8SuzHNz1ZeRWPOC/unnsVoxvUYyC87Z5BwVyU/pTUG9Ge2edrX354utyNotD3aFO/+rZciR+X5x0C36gcEvZFXyXvB3UAQcWO3DL16PtEPVW2yMSY2ociQxlbDepxnnVifGwCIHTPJKkCAwEAATANBgkqhkiG9w0BAQUFAAOBgQCbERy3TPIOTU0jQtFmBq+JFv0kiugjluKg58f7ehmoUGRGu8OSrwFmNQvYRI2X6BmlVxonIKcV6nvsQ4T4k3XOChEsVgh3fS/ffjzyB+wINjtUqVbeEI1r1edXfiIwL90ZckLK1zCTIqH2Xm9e71Pnwfkxl3fPgCcZ/GX8Pdjzng=-END CERTIFICATE-十二、 server.csr-BEGIN CERTIFICATE REQUEST-MIIBwTCCASoCAQAwgYAxCzAJBgNVBAYTAkNIMRAwDgYDVQQIEwdCZWlqaW5nMRAwDgYDVQQHEwdCZWlqaW5nMQswCQYDVQQKEwJKUjEMMAoGA1UECxMDREVWMRAwDgYDVQQDEwdGUkVFRE9NMSAwHgYJKoZIhvcNAQkBFhF5b25nbGlsaXVAdG9tLmNvbTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAxFqiAK4V7mL+i1yX8RVyvmIZUGXLP2u8SuzHNz1ZeRWPOC/unnsVoxvUYyC87Z5BwVyU/pTUG9Ge2edrX354utyNotD3aFO/+rZciR+X5x0C36gcEvZFXyXvB3UAQcWO3DL16PtEPVW2yMSY2ociQxlbDepxnnVifGwCIHTPJKkCAwEAAaAAMA0GCSqGSIb3DQEBBQUAA4GBAJMyOPJ05HSqGUaHLiUeAIz0a63b1AfntLQXSFvQQ0EhbGIMBl5aPxiBUfRkKg+R1FqPOmk6OOP9QFD4Kn5DNmckqFQQL8LphMj899E2DIL0BbPDgPsF7b55scUbbWCkTeIkCP8l3aQYHsuuBxx5DlGouY+Jm8LXYuTkCQgr3nh3-END CERTIFICATE REQUEST-十三、 server.key-BEGIN RSA PRIVATE KEY-Proc-Type: 4,ENCRYPTEDDEK-Info: DES-E
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 应急制氮装置项目可行性研究报告
- 连续铸造机项目可行性研究报告
- 钻井平台涂料项目可行性研究报告
- 2026年高考语文总复习文言文专题-学生版-古代文化常识(复习讲义)
- 防汛知识培训演练方案课件
- 防汛疏散知识培训内容课件
- 软件开发和服务合同书
- 新媒体行业发展趋势前瞻
- 智能家居市场用户行为分析
- 医疗健康行业市场前景分析
- GB/T 13173-2021表面活性剂洗涤剂试验方法
- GB/T 1144-2001矩形花键尺寸、公差和检验
- 公安派出所建设标准
- 领导科学概论课件
- 煤矿安全规程(防治水)课件
- 疥疮防与治课件
- 人教版七年级上册英语教学课件:Starter Unit 1 1a-2e(共32张PPT)
- 地下车库系统环氧地坪施工组织设计
- GB 37300-2018 公共安全重点区域视频图像信息采集规范
- 2022年浙江省公务员录用考试《申论》试卷及参考答案
- YY∕T 0953-2020 医用羧甲基壳聚糖(高清正版)
评论
0/150
提交评论