正文

Apache v2.0.x + OpenSSl 的编译

(2005-07-06 05:15:40) 下一个

简介
    因为美国专利法和其它法律对加密技术的限制,Apache Web Server 的二进制发行版不
包含对SSL的支持。但是所有相关源代码却可以从网上找到,美国司法部居然这么弱?

1.  编译OpenSSL

    OpenSSL是一个开放源码的工具集,它支持SSL v2/v3,TSL v1,以及其它通用加密算法。

    编译之前,你需要以下东东:
   
    a. OpenSSL源码

    b. ActiveState Perl
   
    c. C 编译器,本文选用Visual C++ 6.0。OpenSSL文档上推荐的其它编译器有Borland C
       和GNU C (Mingw32 or Cygwin)
   
    d. ASM 编译器,本文选用Free Netwide Assembler NASM。OpenSSL文档上推荐的其它编
       译器有Microsoft MASM

    开始
   
    a. 解开OpenSSL源码,假设解到c:\openssl
            c:\>cd openssl

    b. 配置环境变量
            c:\openssl>perl Configure VC-WIN32
   
    c. 生成make文件
            c:\openssl>ms\do_nasm
   
    d. 编译
            c:\openssl>nmake -f ms\ntdll.mak
       如果nmake找不到MSPDB60.DLL,你可以把以下路径加到PATH环境变量里:
            Microsoft Visual Studio\Common\MSDev98\Bin\
   
    e. 测试
            c:\openssl>cd out32dll
            c:\openssl>..\ms\test

2.  编译Apache
   
    编译之前,你需要:
   
    a. Visual C++ 6.0,上节课你已经用过了
   
    b. AWK Utility, AWK是一种特殊用途的编程语言,主要用来进行简单的数据格式处理。
       AWK Utility 就是处理AWK文件的工具
   
    c. OpenSSL libraries,就是上节课的作业啦。
           
    开始

    a. 解开Apache源码,假设解到c:\>httpd-2.0.36
            c:\>cd httpd-2.0.36

    b. 复制OpenSSL libraries
            c:\httpd-2.0.36>mkdir srclib\openssl
            c:\httpd-2.0.36>xcopy/e openssl srclib\openssl。
   
    d. 打开httpd-2.0.36\modules\ssl\mod_ssl.mak,删除以下代码

            bison -y -d ssl_expr_parse.y
         sed -e "s;yy;ssl_expr_yy;g" -e  "/#if defined(c_plusplus) || defined(__cplusplus)/,/#endif/d" <y.tab.c  >ssl_expr_parse.c
         del y.tab.c
         sed -e "s;yy;ssl_expr_yy;g" <y.tab.h >ssl_expr_parse.h
         del y.tab.h

         flex -Pssl_expr_yy -s -B ssl_expr_scan.l
         sed -e "/$$Header:/d" <lex.ssl_expr_yy.c >ssl_expr_scan.c
         del lex.ssl_expr_yy.c

    e. 编译
            nmake -f makefile.win SERVERNAME=myDomainName PORT=myPort INSTDIR=myInstallDir installr
       缺省设置
            SERVERNAME=localhost
            PORT=80
            INSTDIR=\Apache2

3.  资源列表

ActiveState Perl, http://www.activestate.com/ActivePerl

Apache-2.0.x Source Code for Win32 compilers http://www.apache.org/dist/httpd

AWK Utility http://cm.bell-labs.com/cm/cs/who/bwk
注意,这位同学发明了C、AWK,还是几本牛书的作者
    C Programming Language
    Practice of Programming

NASM http://www.kernel.org/pub/software/devel/nasm/binaries/win32

OpenSSL-0.9.6d Source Code http://www.openssl.org/source

Visual C++ 6.0 http://msdn.microsoft.com/visualc/productinfo/previous/default.asp

[ 打印 ]
阅读 ()评论 (0)
评论
目前还没有任何评论
登录后才可评论.