正文

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)
評論
目前還沒有任何評論
登錄後才可評論.