基於Apache Http Server和SVN Server的版本管理方案(三)

    本節介紹如何在Apache Server 2.0.59中加入SSL支持,使得SVN客戶端可以通過https來訪問版本庫。
    配置成功後版本庫管理員可以禁止掉http訪問,所有用戶都需要先由管理員生成個人的訪問證書,安裝在本機的瀏覽器內,纔可以通過https訪問版本庫,這樣就使得版本庫的訪問安全性大大提高了。
 
使用的各軟件如下:
1、Open *** 2.0.9([url]http://open***.net/release/open***-2.0.9-install.exe[/url]),主要是用來製作證書用的,安裝在服務器端;
2、Apache  2.0.59 no ssl版本([url]http://apache.mirror.phpchina.com/httpd/binaries/win32/apache_2.0.59-win32-x86-no_ssl.msi[/url]),由於美國出口管制,Apache的可下載版本不能集成ssl,這個當然是要安裝在服務器上的;
3Apache 2.0.59 OpenSSL([url]http://209.61.202.80/apache/Apache_2.0.59-Openssl_0.9.8d-Win32.zip[/url]) Apache SSL模塊的第三方實現,該軟件不需要安裝,我們只需要用到其中的幾個文件;
 
 
 
在“基於Apache Http Server和SVN Server的版本管理方案(一)”和“基於Apache Http Server和SVN Server的版本管理方案(二)”的基礎上,現在我們來配置APACHESSL模塊:
 
一、證書製作
1、證書製作前的準備工作
      進入C:\Program Files\Open***\easy-rsa目錄,首先運行init-config ,該命令生成vars.bat,我們可以對vars.bat中的KEY_COUNTRYKEY_PROVINCE等信息進行修改:
 
     修改完成後,運行vars.bat,以使參數生效,然後再運行clean-all.bat
 
2、製作根證書
      運行build-ca.bat,類似Country Name等之前已經在vars.bat中設置好的變量,可以直接按回車鍵通過,注意:
      Common Name (eg, your name or your server's hostname) []:隨便輸入公司的名字即可。
     Sign the certificate? [y/n]:輸入y;
    1 out of 1 certificate requests certified, commit? [y/n]輸入y
 
    該名稱運行成功後,在子目錄keys下生成了根證書ca.crt,另外也生成了根證書的私鑰文件ca.key
 
3、製作服務器證書
      運行build-key-server server,注意:
      Common Name (eg, your name or your server's hostname) []:需要填入服務器的域名或者服務器的IP地址,注意這個域名或者IP地址需要和Apache httpd.conf中的ServerName一致。
      Sign the certificate? [y/n]:輸入y;
     1 out of 1 certificate requests certified, commit? [y/n]輸入y
 
      該命令運行成功後,在子目錄keys下生成了server.crt(服務器證書)和server.key(服務器證書的私鑰)。
 
4、製作客戶端訪問證書
       運行build-key-pkcs12   <證書名稱>,例如build-key-pkcs12 sunny。
       注意:
       Common Name (eg, your name or your server's hostname) []輸入授權用戶的名稱,比如Sunny;
       Sign the certificate? [y/n]:輸入y;
       1 out of 1 certificate requests certified, commit? [y/n]輸入y
 
 
二、配置Apache Http Server
      1、在C:\Program Files\Apache Group\Apache2\conf目錄下建立ssl.crtssl.key兩個子目錄,將第一步生成的ca.crt、server.crt複製到ssl.crt子目錄下,server.key複製到ssl.key目錄下;
      1、將Apache_2.0.59-Openssl_0.9.8d-Win32.zip解壓縮,進行如下操作:
            bin目錄下的Apache.exe、libeay32.dll、 ssleay32.dll複製到C:\Program Files\Apache Group\Apache2\bin目錄下;
            modules子目錄下的mod_ssl.so複製到C:\Program Files\Apache Group\Apache2\modules目錄下;
            conf子目錄下的ssl.conf複製到C:\Program Files\Apache Group\Apache2\conf目錄下。
 
      2、設置C:\Program Files\Apache Group\Apache2\conf目錄下的httpd.confssl.conf
             a、在httpd.conf中,去掉#LoadModule ssl_module modules/mod_ssl.so前面的#,讓Apache加載ssl模塊;
             b、將ssl.conf中的DocumentRoot設成和httpd.conf中的DocumentRoot一樣;
             c、在ssl.conf中,分別找到<IfDefine SSL>和</IfDefine>這兩行,在其前面加上#,屏蔽掉此條件,這樣Apache啓動時直接讀取裏面的參數;
             d、在httpd.confssl.conf中,分別修改ServerName,例如httpd.conf中的ServerName 22.144.20.115:80,ssl.conf中的ServerName 22.144.20.115:443
             e、找到如下三行,如果其前面有#,則去掉,並設置其值如下:
                    SSLCertificateFile conf/ssl.crt/server.crt
                    SSLCertificateKeyFile conf/ssl.key/server.key
                    SSLCACertificateFile conf/ssl.crt/ca.crt
 
             f、將以下兩行前面的#去掉,並將SSLVerifyDepth的值改爲1
                           #SSLVerifyClient require
                           #SSLVerifyDepth  10
 
 
         3、重新啓動Apache Http Server,如果能夠正常啓動,應該就配置成功了。
 
 
三、安裝客戶端證書
         將第一步生成的後綴爲p12的證書文件複製到客戶端,然後雙擊導入,或者通過IE的工具/Internet選項/內容/證書/個人,點擊導入,文件類型選“個人信息交換(*.pfx,*.p12)”,導入證書文件,如果之前生成證書時設置了密碼,那麼在這兒也要輸入密碼。
 
四、開始測試
         在客戶機IE內運行[url]https://<[/url]服務器域名或IP>,在IE5裏應該會彈出一個選擇證書的對話框,選擇證書後即可看到默認的Apache網頁。而在IE6中可能不會彈出選擇證書的對話框即可看到默認的Apache網頁。
 
        如果已經按照《一》和《二》文配置好了SVN訪問URL,則可以利用TortoiseSVN的版本庫瀏覽器,輸入地址[url]https://<[/url]服務器域名或IP>/<庫名>,確定後會彈出“打開用戶端憑證”的對話框,選中客戶端證書文件打開後,出現一個TortoiseSVN錯誤提示對話框,這個錯誤提示是無所謂的,就是說證書發放者是未知的,直接點擊“總是接受”即可,然後按正常訪問邏輯輸入版本庫的訪問用戶名和密碼,即可訪問庫裏的版本。
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章