RHEL5上部署SVN服务--支持SSL

  
  
  
  
先安装apr-1.4.2.tar.gz 、 apr-util-1.3.9.tar.gz
 
   
   
   
   
  1. ./configure --prefix=/usr/local/apr 
  2.  
  3. ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr 
安装apache 2.2.16
   
   
   
   
  1. ./configure --enable-dav --enable-dav-fs  --enable-so --enable-ssl --enable-maintainer-mode -prefix=/usr/local/apache2 --enable-mods-shared=all --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util 
其中
-enable-dav
-enable-maintainer-mode是为了能在apache下集成subversion
 
安装 subversion-1.5.1
   
   
   
   
  1. ./configure --prefix=/usr/local/subversion --with-apxs=/usr/local/apache2/bin/apxs --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util/ 
修改httpd.conf文件
   
   
   
   
  1. #加入下面两个模块 
  2. LoadModule dav_svn_module modules/mod_dav_svn.so 
  3. LoadModule authz_svn_module   modules/mod_authz_svn.so 
  4. LoadModule dav_module modules/mod_dav.so
  5. LoadModule dav_fs_module modules/mod_dav_fs.so
  6.  
  7.  
  8. #配置svn 
  9. <Location /svn>
  10.   //<Location /svn>表示用户可以通过http://svnserver/svn/"库名" 的方式来访问指定的库,注意现在我们还没为svn组建立任何库。
  11. DAV svn 
  12. SVNParentPath /home/svn  //svn父目录 
  13. AuthType Basic  //连接类型设置 
  14. AuthName "Welcome to ***** svn"  //连接框提示 
  15. AuthUserFile /home/svn/passwd  //用户配置文件 
  16. AuthzSVNAccessFile /home/svn/auth.conf  //权限配置文件
  17. Require valid-user   //采用何种认证 
  18. </Location> 

 

建立SVN存储仓库
 
    
    
    
    
  1. mkdir  -p  /home/svn 
  2. svnadmin create --fs-type fsfs /home/svn/test 
  3. /usr/local/subversion/bin/svnserve -d -r /home/svn 


建立本地访问密码文件,默认是MD5加密

 

    
    
    
    
  1.  /usr/local/apache2/bin/htpasswd -c /home/svn/passwd mkwang  
  2. //第一次设置用户时使用-c表示新建一个用户文件。回车后输入用户密码,完成对用户的增加 
  3. # 以后再添加用户就不需要使用-c参数了 

 

建立本地项目控制文件/home/svn/auth.conf 

    
    
    
    
  1. [groups] 
  2. Admin = mkwang 
  3. developer = **** 
  4. abcd_group1 = ****,**** 
  5. abcd_group2 = ****,**** 
  6. [test:/] 
  7. @Admin = rw 
  8. @developer = r 
  9. [abcd:/] 
  10. @abcd_group1 = rw 
  11. @abcd_group2 = rw 
  12. mkwang = rw 
  13. @developer = r 
 
启动apache,测试
/usr/local/apache2/bin/apachectl start
 客户端用http://192.168.3.7/svn/访问
 
 
让你的SVN支持SSL
 
在httpd.conf中添加
   
   
   
   
  1. #LoadModule ssl_module modules/mod_ssl.so 
  2. 并把下面这行的注释取消
  3. Include conf/extra/httpd-ssl.conf
     
 
httpd-ssl.conf配置

   
   
   
   
  1. 将文件中SSLCertificateFile设置成服务器证书路径 
  2. SSLCertificateFile "/usr/local/apache2/conf/server.crt" 
  3. 将文件中SSLCertificateKeyFile设置成服务器证书密钥路径 
  4. SSLCertificateKeyFile "/usr/local/apache2/conf/server.key" 

创建证书

   
   
   
   
  1. 1.创建一个根证书CA的一个RSA私用密钥 
  2. openssl genrsa -des3 -out ca.key 1024 
  3.  
  4.  
  5. 生成密钥 ca.key 
  6. 利用 CA 的 RSA 密钥创建一个自签署的 CA 证书(X.509结构) 
  7. openssl req -new -x509 -days 3650 -key ca.key -out ca.crt 
  8.  
  9. 然后需要输入下列信息:  
  10. Country Name: cn                                         两个字母的国家代号  
  11. State or Province Name: beijing                 省份名称  
  12. Locality Name: beijing                                 城市名称  
  13. Organization Name: ***          公司名称  
  14. Organizational Unit Name: ***                 部门名称  
  15. Common Name: 192.168.3.7                   如果你的服务器有域名,添域名,如果没有添ip  
  16. Email Address: [email protected]  Email地址  
  17.  
  18.  
  19. 生成 ca.crt 文件 
  20. 为Apache 创建一个 RSA 私用密钥 
  21.  openssl genrsa -des3 -out server.key 1024 
  22. 生成 server.key 文件 
  23.  
  24.   用 server.key 生成服务器证书签署请求 CSR 
  25. openssl req –config openssl.cnf -new -key server.key -out server.csr 
  26. Common Name 这个属性请填写当前apache服务器的域名(如果不确定,请查看/conf/httpd.conf文件),如果填写不对,则apache不能正常启动  (域名如果查不到,可以写ip地址) 
  27.  
  28.   输入命令: openssl ca –config ca.config –out server.crt –infiles server.csr 
  29. 生成server.crt 
 
 
强制通过SSL来访问

   
   
   
   
  1. 当你配置了SSL来提高版本库安全时,你可能想禁用无SSL的http访问方式,而只允许通过https访问。要达到这种效果,你要在<Location>块加入另外一个指示器SSLRequireSSL。 
  2.  
  3. <Location /svn> 
  4. SSLRequireSSL 
  5. </Location> 
 
 生成证书
 
 
 
 
 备份以前的SVN库

   
   
   
   
  1. #svnadmin dump /data/svn/test/ > /root/mkwang.svn.bak 

 把备份出来的数据恢复到本地

   
   
   
   
  1. #svnadmin load  /data/svn/test/ < /root/mkwang.svn.bak 
 


 

你可能感兴趣的:(SVN,ssl,职场,休闲)