基于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错误提示对话框,这个错误提示是无所谓的,就是说证书发放者是未知的,直接点击“总是接受”即可,然后按正常访问逻辑输入版本库的访问用户名和密码,即可访问库里的版本。
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章