引用 | 編輯
tanda
2004-11-29 23:46 |
1樓
▲ |
在 Apache + SSL 在 Win32 的部分, 說真的實在不好找
你們可以參考一下 The Apache + SSL on Win32 HOWTO 的做法 當然照著上邊做也沒關係, 每個人有每個人的做法看個人吧試試看就知道了 雖然我是自己 Compile 來裝的, 但我打字比較懶了點, Compile 教學的部分 請自行參考 OpenSSL 跟 mod_ssl 的內附文件 For Win32 基本上只要架好 Apache + SSL 其他如 ActivePerl, MySQL ,PHP 都可以慢慢加進來 在 Hunter 這裡可以找到已經編譯好的,視個人需要自行取用, 記得寄封Email謝謝人家喔!! 以下列出最快的安裝方式供參考, 原理....自己看各套件的內文說明 安裝所需檔案 Apache_2.0.49-Openssl_0.9.7d-Win32.zip openssl.cnf (在那個 here 連結) 01. 建議最好先裝 Apache 2.0.49 再來解壓縮 Apache_2.0.49-Openssl_0.9.7d-Win32.zip, 記得解壓縮後修改路徑直接覆蓋原來安裝的檔案上 02. 基本上您已經完成 Apache + mod_ssl + OpenSSL 的安裝了 接下來得先開始設定您的 httpd.conf 找到 Listen 80 (不能註解掉喔, 至少知道你的網站是活的) 找到 LoadModule ssl_module modules/mod_ssl.so (不能註解掉喔, 要開 SSL 要靠這支 Modules 了) 03. 這裡預設您除了正常網站外同一個 IP 或 DomainName 上同時有 SSL 所以, 您除了設定您一般的網站路徑外 VirtualHost 也要一併設定 04. 以 Name-Based 為例, 其他請依實際安裝為準 記得這裡的設定一定要跟上邊的一樣, 不然你的主網頁會找不到喔 NameVirtualHost *:80 <VirtualHost *:80> ServerAdmin 您的email DocumentRoot "/您網頁的實際路徑" ServerName DomainName:80 ErrorLog logs/DomainName_error_log CustomLog logs/DomainName_access_log common </VirtualHost> 05. 再這邊您可以稍微注意一下上邊有 Include conf/ssl.conf 沒錯!! 接下來就是設定 SSL 要開的網頁設定, 暫時先不教產生憑證 Key 的方法 既然再同一個目錄先做設定的部分 找到 SSLMutex file:logs/ssl_mutex 並註解掉, Win32 上不支援此方式, 所以您可以改用 SSLMutex none 或是 SSLMutex default 接下來仍是 VirtualHost 的設定 找到 <VirtualHost _default_:443> 改用 <VirtualHost *:443> DocumentRoot "/您網頁的實際路徑" ServerAdmin 您的email ServerName DomainName:443 ErrorLog logs/ssl_error_log TransferLog logs/ssl_access_log 找到 #SSLCertificateChainFile conf/ssl.crt/ca.crt 把註解拿掉(要自己發給自己的話) 找到 #SSLCACertificatePath conf/ssl.crt 把註解拿掉(要自己發給自己的話) 增加 SSLCACertificateFile conf/ssl.crt/ca.crt 06. 到此已完成設定的基本工作了, 這裡我稍微保留一下, 您可以暫時不用理會 找到 <IfDefine SSL> 跟 </IfDefine SSL> 我是註解掉的(懶得改啟動設定), 如果您在 啟動 Apache 時, 仍無法讓您的 SSL 動作的話才跟著做這項 07. 接下來要開始製作認證的憑證準備階段 請切換至 Apache 的 bin 目錄下, 把您下載的 openssl.cnf 置於此 並修改一下 [ CA_default ] 內的內容如下(既然是懶人法請跟著做喔!!其他倒是無關緊要) 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 08. 依上述於 bin 目錄下新增一個 ssl 目錄 在 ssl 目錄內新增 index.txt 檔, 內容空白就好 在 ssl 目錄內新增 serial 檔, 內容請填 01 就好 09. 切換回 Apache 的 bin 目錄下吧!! 這裡我們要用命令提示字元 或 Win-DOS 視窗來設定, 所以為方便起見, 請設為 Apache 的 bin 目錄下 當然您要寫成 *.BAT 省在視窗下打那些重複執行的指令也行, 假設我們自己要發給自己 CA 認證 當然 CAroot 一定是自己並加簽給自己 10. 產生 CA Private Key -- 執行 openSSL genrsa -des3 -out ssl/ca.key 1024 1024 為使用 128-bit 加密, 並輸入您的安全密碼 11. 產生 CA Require 憑證需求 執行 openssl req -config openssl.cnf -new -key ssl/ca.key -out ssl/ca.csr 輸入您的申請書資料, 這裡的可以用 "." 來當無資料輸入使用, Domain 或 Websit 在這並無特殊指定輸入, 請依顯示輸入既可 12. 產生 CA Public Crt 憑證 -- 執行 openssl x509 -days 3650 -req -signkey ssl/ca.key -in ssl/ca.csr -out ssl/ca.crt 預設是 30 天過期, 3650 是約 10 年 13. 接下來, 我們要為自己的 Server 或是個人加簽憑證, 這裡以 Server 為例 產生 Server Private Key -- 執行 openSSL genrsa -out ssl/server.key 1024 這裡預設 Server Private Key 不設定安全密碼以免無人值守時電腦關機重開無法啟動 Apache (因為要密碼才能啟動) 這我倒沒在 Win32 試過, Unix-Like 鐵定會要求密碼 14. 產生 Server Require 憑證需求 -- 執行 openssl req -config openssl.cnf -new -key ssl/server.key -out ssl/server.csr 輸入您的申請書資料, 跟上邊的一樣, 不過這裡的 Domain 或 Websit 在這最好填入您的 DomainName 或 主機全名(Host.DomainName) 15. 產生 Server Public Crt 憑證 -- 執行 openssl ca -config openssl.cnf -days 3650 -cert ssl/ca.crt -keyfile ssl/ca.key -in ssl/server.csr -out ssl/server.crt 輸入您的 CA Private Key 安全密碼完成製作手續 16. 現在您的 ssl 目錄下已經有了必要的檔案, 接下來開始複製到所需的路徑下 請在 Apache 下之 conf 目錄下建 ssl.crt 與 ssl.key 這 2 個目錄 將 ca.crt 與 server.crt 複製至 conf/ssl.crt 下 將 server.key 複製至 conf/ssl.key 下 17. OK!!萬事具備了, 啟動您的 Apache 吧!! 不放心的話用 apache -t 看一下語法有無錯誤 啟動後先用一般網頁(http://DomainName 或 http://Host.DomainName)開看看應該沒問題 18. 再來試試 Port 443 (http://DomainName:443 或 http://Host.DomainName:443) 應該會告訴你是一個錯誤的請求如下 Bad request! Your browser (or proxy) sent a request that this server could not understand. If you think this is a server error, please contact the webmaster. Error 400 這時您可以直接使用 https://DomainName 或 https://Host.DomainName 來進入 SSL 的網頁了(後面呢...自己認證吧!!) 19. 注意喔!!右下角的金鑰喔!! 因為您的電腦尚未取得 Server 的認證, 所以檢驗憑證時, 記得要安裝 Server 憑證(server.crt)喔!! 又因為 Server 的認證未經授權單位認可, 所以檢驗憑證時, 記得要安裝 CA 憑證(ca.crt)喔!! 您可以將 ca.crt 與 server.crt 公開給人下載安裝以取得擁有屬於您自己的實驗性網站的認證 20. 認證實際運作可按此參考看看 手打的好痠......噗!! x0 |