WAMP安裝好以後 , 預設就有可以開SSL Module的選項
不過找了一下 , 預設並沒有憑證可以使用
此外 , Httpd.conf內所指定的httpd-ssl.conf設定檔 , 路徑並沒有如同Httpd.conf一樣設定好
如果想要測試Https可能會出點問題
下面的設定以條列式的方式 , 將我測試後可行的步驟打上 , 希望對你有所幫助^^
- 測試環境 : windows xp sp2 , wamp2.2.6 , win32 openssl v0.9.8g
- 首先 , 由於設定Https , Server端必須要發憑證給Client , 供資料加密傳輸使用 , 但是Wamp預設並沒有提供測試使用的憑證 !在此使用win32 openssl v0.9.8g 建立測試用憑證
( http://www.slproweb.com/products/Win32OpenSSL.html )這套軟體是基於openssl所撰寫的 , 適用於win32平台 , 安裝以後會產生一個openssl資料夾 ,
點選進入裡面的bin資料夾 , 有一個openssl.exe執行程式 , 直接點選就可以開啟接著在上面打上下列指令
( 指令參考自 http://tud.at/programm/apache-ssl-win32-howto.php3
3.: Creating a test certificate )my-server部分記得換成自己的domain,作者的domain設定是www.my-server.com,這邊我是打loalhost測試openssl > req -config openssl.cnf -new -out my-server.csropenssl>rsa -in privkey.pem -out my-server.keyopenssl>x509 -in my-server.csr -out my-server.cert -req -signkey my-server.key -days 365openssl>x509 -in my-server.cert -out my-server.der.crt -outform DER
按照這些步驟 , 過程中他會問你一些資料 , 是要放在憑證內的 , 這邊亂打也無仿 ( 因為是自己認證自己XD) , 不過可以複習一下憑證內容就是^^
建立完 , 將*.key , *.cert , *.crt放到WAMP2binapacheapache2.2.6binconf
- 打開apache設定檔httpd.conf , 在文件最下面
# Secure (SSL/TLS) connections
# Include conf/extra/httpd-ssl.conf <–這行註解拿掉 由於Wamp預設將ssl的設定檔放在extra/內 , 直接拿預設的來使用即可 接著切換到httpd-ssl.conf- 將C:/Program Files/Apache Software Foundation/Apache2.2/
全部取代成 D:/WAMP2/bin/apache/apache2.2.6/
( 我預設安裝在D: , 以下我都會用這路徑 , 記得切換到你自己的目錄! , 記得將目錄切換的改成/ex: c:-> c:/ ) - SSLMutex這段要#起來 ( 我也不知道這段是啥意思XD)
- 把server.crt , server.key 命名-> localhost.crt , localhost.key (記得改成當初產生key用的domain) , 否則Apache會找不到!
- SSLCertificateFile把這邊的crt改成.der.crt
- 從httpd copy一份目錄的權限控制到httpd-ssl.conf
( 我為了方便管理各自的目錄 , 所以沒放在一起 )# 從這開始 =====================================
#This should be changed to whatever you set DocumentRoot to.<director “D:/WAMP2/www”>
…………………………..
</director>
# 在此結束 =====================================將httpd-ssl.conf內的director改成你想放置網頁的路徑 , 我預設是放在此
<director “D:/WAMP2/bin/apache/apache2.2.6/htdocs”>
…………………………..
</director> - 執行run/打上cmd/ 切換到文字介面模式
切換到目錄D:WAMP2binapacheapache2.2.6bin
打上httpd按enter , 它會檢查你apache設定檔的語法有沒有錯誤
( 如果沒有錯誤 , 它會顯示呆滯狀態 , 沒有其他資訊顯示 , 就可以把它關閉了 ) - 打開Wamp , 將apache的ssl_module開啟
- 重心啟動所有服務 , 試試看在網頁上打https://localhost , 應該會跳出一個憑證問你要不要接受
- 如果你接受了 , 也用我剛測試的目錄 , 這時應該會顯示一個it works的網頁 , 看到這邊代表你已經搞定摟!
- 將C:/Program Files/Apache Software Foundation/Apache2.2/
ps. 本篇實做範例講的很粗淺 , 原理跟憑證產生-CA驗證都沒交代很完整 , 如果對這邊不熟的使用者可以先查SSL或TLS
參考資料 :
-
ActionFire : http://www.pczone.com.tw/vbb3/archive/t-96241.html
-
Balázs Bárány : http://tud.at/programm/apache-ssl-win32-howto.php3
-
OpensslFAQ : http://www.openssl.org/support/faq.html
