AppServ + OpenSSL in Win32

摘要:AppServ + OpenSSL in Win32

最近開始摸一些關於 Blog的架站程式,由於覺得要安裝 Apache、MySQL、PHP,分開安裝實在太過於麻煩了,所以就直接採用 Appserv來安裝,
不過後來發現 Appserv內鍵的 Apache竟然沒有加上 OpenSSL的 Module,因為管理 Blog,我還是覺得加上 SSL至少可以對於資料傳輸上有些保護,
因此我 search了很多的文章,發現也蠻多人整理好的,但有些文章中提供的檔案網址不是 404就是換了其他的內容,再加上自己對 Apache也是
一知半解的狀況下,我就只好選擇一篇我比較看得懂的內容,【[架站] Appserv 2.5.9 (Apache 2.2.4 win32) + OpenSSL 0.9.8d 安裝備忘錄】,
以下是轉帖的文章內容,我只有摘錄部分重點,並且加上我自己在過程中覺得比較重要的地方,透過綠色來註解,至於其他內容的部分,
大家可以直接透過引用連結回去查詢相關的說明:
一、預備檔案
         1. Apache_2.2.4-win32-openssl-0.9.8d.msi  <*重要的是注意1.和2.的openssl版本要相符*>
         2. OpenSSL-0.9.8d_win32.rar
         3. openssl.cnf
         4. AppServ 2.5.9         *這個AppServ是我採用的版本。
         * 第2與第3,在本篇內容的最下方我有提供載點在 SkyDriver上
 
二、安裝及複製Apache檔案:
        1. 先行安裝AppServ,預設路徑應該安裝在 C:/AppServ/Apache2.2/
        2. 接著再執行Apache_openssl.msi進行安裝。預設應該安裝在 C:/Program Files/Apache Software Fundation/Apache2/
        3. 記得先將二個Apache Service停止。
        3. 將Apache2/bin/ 底下的 httpd.exe, ssleay32.dll, libeay32.dll 複製到 Appserv/Apache2.2/bin 底下。
        4. 將Apache2/conf/extra/httpd-ssl.conf 複製到Appserv/Apache2.2/conf/extra 底下。
       其實這就是在電腦上又多安裝了一個Apache伺服器,不過我們只是要它其中的一些檔案而已,所以用完
       之後可以馬上移除掉。
 
三、安裝Openssl、產生CA檔案:
        1. 將OpenSSL-0.9.8d_win32.rar解壓縮,以解壓縮至 C:\Openssl為例,底下應該會有 \bin, \include, \lib, \ssl
            四個資料夾和一個 openssl.cnf 檔。
        2. 用另外抓取openssl.cnf(一、3.) 覆蓋掉原本的。
        3. 用文字編輯器打開覆蓋後的 openssl.cnf,修改以下部份:*要注意"\\",不可以少打成"\"
            dir = ssl
            certs = $dir\\certs
            crl_dir = $dir\\crl
            database = $dir\\index.txt
            new_certs_dir = $dir
            certificate = $dir\\cacert.pem
            serial = $dir\\serial
            crl = $dir\\crl.pem
            private_key = $dir\\privkey.pem
            RANDFILE = $dir\\privkey.rnd
        4. 將 x509extensions 開頭的這一行註解掉。(前面加上#字號)
        5. 在 C:\Openssl\ 下開啟新資料夾 ssl,並在其中新增 index.txt serial 兩個檔案,
            serial用文字編輯器打開,輸入01index.txt保持空白
        6. 將 \bin底下的檔案複製一份到 C:\Openssl\底下。(這是為了避免之後路徑的困擾)
        7. 進入命令列模式,依序執行以下動作:
            7-1: openssl genrsa -des3 -out ssl/ca.key 1024
            7-2: openssl req -config openssl.cnf -new -key ssl/ca.key -out ssl/ca.csr
            7-3: openssl x509 -days 3650 -req -signkey ssl/ca.key -in ssl/ca.csr -out ssl/ca.crt
            7-4: openssl genrsa -out ssl/server.key 1024
            7-5: openssl req -config openssl.cnf -new -key ssl/server.key -out ssl/server.csr openssl ca -config
            7-6: openssl.cnf -days 3650 -cert ssl/ca.crt -keyfile ssl/ca.key -in ssl/server.csr -out ssl/server.crt
            *在上列6個步驟裡面會要求輸入密碼、國碼(04)、國家、地區、公司名稱、單位、網站位址、Email。
            *在 7-6步驟,會有兩個問題[y/n],都要選y.不然產生的server.crt會出錯,變成空檔案(Empty)。
            *如果有error多半是路徑錯誤,稍微檢查一下指令做修正即可。
        8. 將 7產生的檔案(整個ssl資料夾)複製到 C:/Appserv/Apache2.2/conf/ 底下。
 
四、修改httpd-ssl.conf:
        1. 打開 C:\AppServ\Apache2.2\conf\extra\httpd-ssl.conf 檔案,修改部份如下:
            DocumentRoot 網頁根目錄,比照httpd.conf下的DocumentRoot
            ServerName Server位址:443
            ServerAdmin Email
            ErrorLog logs/error_log
            TransferLog logs/access_log
            ---
            SSLCertificateFile conf/ssl/server.crt
            SSLCertificateKeyFile conf/ssl/server.key
            SSLCertificateChainFile conf/ssl/ca.crt
            ---
            將SSLMutex default註解掉,改為SSLMutex none
            ---
            將所有沒有用雙引號包起來的絕對路徑加上雙引號,例如:
            SSLSessionCache "shmcb:C:/AppServ/Apache2.2/logs/ssl_scache(512000)"
            SSLCertificateFile "C:/AppServ/Apache2.2/conf/ssl/server.crt"
            ---
            將< VirtualHost >的標注部份改為
            NameVirtualHost *:443
            < VirtualHost *:443 >
 
五、修改httpd.conf:
        1. 打開 C:\AppServ\Apache2.2\conf\httpd.conf檔案,修改部份如下:
            把 LoadModule ssl_module modules/mod_ssl.so 的#註解拿掉
            把 Include conf/extra/httpd-ssl.conf 的#註解拿掉
 
六、重新啟動Apache:
      如果啟動過程中沒有出現錯誤,可以連 https://localhost 測試看看,應該就會出現要求憑證的認證畫面了。
        *如果Apache啟動失敗,請檢查 error.log或到 Windows 事件檢視器確認是哪邊設定錯誤。
 
References:
  1. [架站] Appserv 2.5.9 (Apache 2.2.4 win32) + OpenSSL 0.9.8d 安裝備忘錄 
  2. 在 AppServ 安裝 mod_ssl (Apache 2 版本) SSL (Secure Socket Layer) on Windows
  3. Windows 下安裝設定 Apache2 + PHP5 + mod_ssl
  4. 【懶人教學】建構您的 Apache + SSL on Win32
  5. Windows平台下Apache2.2.4的SSL配置过程(及错误整理)
  6.  http://www.apache-ssl.org/
  7. http://ms.ntcb.edu.tw/~steven/article/apache-ssl.htm
  8. http://tud.at/programm/apache-ssl-win32-howto.php3
  9. http://gca.nat.gov.tw/download/gca_ssl_cert_install_for_apache_modssl.pdf
Download Files:
Pou's Tags:,,,