Apache服務器缺省并不支持SSL,但是你可以從其他地方下載安裝。
1. 首先,你需要一些文件來開啟SSL,你可以在http://hunter.campbus.com/找到這些包,只需要解壓縮這些文件,然后將mod_ssl.so拷貝到Apache的modules目錄,將文件openssl.exe拷貝到bin目錄,將文件conf/ssl.conf拷貝到Apache的conf目錄。
2. 使用文本編輯器打開Apache的conf目錄的ssl.conf.
3. 注釋掉(使用#)下面幾行:
DocumentRoot "c:/apache/htdocs" ServerName www.example.com:443 ServerAdmin you@example.com ErrorLog logs/error_log TransferLog logs/access_log |
4. 此行
SSLCertificateFile conf/ssl.crt/server.crt 改為 SSLCertificateFile conf/ssl/my-server.cert 此行 SSLCertificateKeyFile conf/ssl.key/server.key 改為 SSLCertificateKeyFile conf/ssl/my-server.key 此行 SSLMutex file:logs/ssl_mutex 改為 SSLMutex default |
5. 刪除下面兩行:
<IfDefine SSL> |
6. 打開Apache配置文件(httpd.conf),并且去掉此行的注釋
#LoadModule ssl_module modules/mod_ssl.so |
7. Openssl需要一個配置文件,你可以從http://tud.at/programm/openssl.cnf下載一個正在使用的,請注意:*.cnf類型的文件盡管是普通的文本文件,Windows對這種文件會特別處理!
8. 然后你需要創建一個SSL證書,為此打開一個命令行窗口,進入apache目錄(例如C:program filesapache groupapache2),然后輸入下面的命令:
binopenssl req -config binopenssl.cnf -new -out my-server.csr |
你會被訊問密語,請不要使用簡單的單詞,而是使用整段話,例如一段詩,越長越好。你也需要輸入server的URL,其他所有問題都是可選的,但是我們建議你最好輸入這些信息。
通常會自動產生privkey.pem文件,但是如果沒有,請輸入下面的命令生成它:
binopenssl genrsa -out privkey.pem 2048 |
然后輸入這個命令
binopenssl rsa -in privkey.pem -out my-server.key |
并且輸入(在同一行)
binopenssl x509 -in my-server.csr -out my-server.cert -req -signkey my-server.key -days 4000 |
這樣會創建一個在4000天里過期的證書,最后輸入:
binopenssl x509 -in my-server.cert -out my-server.der.crt -outform DER |
這些命令在Apache目錄(my-server.der.crt、my-server.csr、my-server.key、。rnd、 privkey.pem、my-server.cert)里創建了一些文件,拷貝這些文件到目錄conf/ssl(例如C:program filesapache groupapache2confssl)-如果這個目錄不存在,你需要首先創建一個。
9. 重啟apache服務
10. 將你的瀏覽器指向https://servername/svn/project ……
11 關閉不安全連接方法
你設置了SSL讓你的版本庫更安全,你一定希望關閉普通的非ssl訪問,為此,你需要在Subversion的<Location> 增加指示:SSLRequireSSL.一個<Location>實例就像這個樣子:
|
總結:
到此為止在版本控制工具Subversion在Windows Server 2003下的安裝基本介紹完了,如果您希望獲得更好的安全性能可以考慮使用使用Windows域認證。