1. 程式人生 > >CentOS6搭建證書驗證的SVN服務器

CentOS6搭建證書驗證的SVN服務器

efault 測試 ali 文件 install ati pat create pre

本人搭建SVN服務器,通過https協議發布到互聯網中的。
我需要的服務有apache(httpd)網站服務器、subversion版本庫服務器、ssl證書。

一、通過yum安裝環境

  • 安裝httpd網站服務器:yum install -y httpd
    安裝版本庫服務器:yum install -y subversion
  • 安裝網站SSL模塊到服務器: yum install -y mod_ssl
  • 安裝網站SVN模塊到服務器:yum install -y mod_dav_svn mod_authz_svn

二、使用SUBVERSION搭建SVN服務器

  • 首先創建在系統中創建一個repos文件夾,用於存放SVN文件;
  • 第二步: 創建版本庫模式的文件夾: svnserve create <repos文件夾>/<版本庫名>;
  • 第三步: 添加用戶到配置目錄權限<repos文件夾>/<版本庫名>/conf/authz
    [/]
    admin=rw
  • 第三步: 添加用戶密碼到配置文件<repos文件夾>/<版本庫名>/conf/passwd
    admin=123
  • 第四步: 在當前庫配置參數<repos文件夾>/<版本庫名>/conf/svnserve.conf
    anon-access = none
    auth-access = write
    password-db = passwd
    authz-db = authz
    realm = /svn/svnrepos
  • 第五步: 啟動svn版本庫
    svnserve -d -r <repos文件夾>/<版本庫名>

三、搭建apache中的ssl證書

  • 創建存放證書的位置 :mkdir /etc/httpd/ssl/
  • 創建證書文件:openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/httpd/ssl/apache.key -out /etc/httpd/ssl/apache.crt

四、添加SSL到apache服務器中

  • 修改/etc/httpd/conf.d/ssl.conf中的證書參數:
    SSLCertificateFile /etc/httpd/ssl/apache.crt
    SSLCertificateKeyFile /etc/httpd/ssl/apache.key
  • 修改/etc/httpd/conf.d/ssl.conf中的端口參數:
    Listen 19443
    VirtualHost default:19443

五、添加SVN目錄到apache服務器中

         LoadModule dav_svn_module     modules/mod_dav_svn.so
         LoadModule authz_svn_module   modules/mod_authz_svn.so

         <Location /repos/svn1>
             DAV svn
             SVNPath <repos文件夾>/<版本庫名>
             SVNListParentPath On
             SVNAutoversioning On
             SVNReposName "<版本庫名>"
             AuthType Basic
             AuthName "Welcome to <自定義服務器名> repos <版本庫名>"
             AuthUserFile<repos文件夾>/<版本庫名>/conf/passwdfile
             AuthzSVNAccessFile <repos文件夾>/<版本庫名>1/conf/authz
             Require valid-user
         </Location>

六、啟動apache服務器 service httpd restart

七、創建svn開機自啟動服務文件 /etc/init.d/svn1

         #!/bin/bash
         #chkconfig: - 99 01
         ##
         ##description: this is a svnserve <版本庫名> custom script !

         case $1 in
                 start)
                         /usr/bin/svnserve -d -r <repos文件夾>/<版本庫名>
                         ;;
                 stop)
                         kill `pidof  /usr/bin/svnserve`
                         ;;
                 restart)
                         kill `pidof  /usr/bin/svnserve`
                         /usr/bin/svnserve -d -r <repos文件夾>/<版本庫名>
                         ;;
                 *)
                         echo Usage:`basename $0` start|stop|restart
         esac

八、開機自啟動設置

  • 手動添加svn1服務到chkconfig中: chkconfig --add svn1
  • 設置svn1服務開機自啟動: chkconfig svn1 on
  • 設置網站服務開機自啟動: chkconfig httpd on

測試一下吧!

CentOS6搭建證書驗證的SVN服務器