close

Apache SSL

一、預備檔案

         1. Apache_2.2.4-win32-openssl-0.9.8d.msi  <*重要的是注意1.2.openssl版本要相符*>

         2. OpenSSL-0.9.8d_win32.rar

         3. openssl.cnf

二、安裝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    <------crt存放目錄

            SSLCertificateKeyFile conf/ssl/server.key   <------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 事件檢視器確認是哪邊設定錯誤。

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 楊 bey kuen 的頭像
    楊 bey kuen

    楊 bey kuen的部落格

    楊 bey kuen 發表在 痞客邦 留言(0) 人氣()