VisualSVN 迁移至Linux SVN+Apache+ssl集成LDAP

2023年 5月 4日 81.6k 0

为了方便维护管理,将VisualSVN 迁移至Linux SVN并配置https访问,如果有需要svn配置https访问的也可以查阅本文章

VisualSVN 迁移至Linux SVN+apache+ssl集成ldap
svn

  • VisualSVN 迁移至Linux SVN+apache+ssl集成ldap一、VisualSVN 迁移至Linux SVN1.1首先找到Repositories (存放项目目录)
  • 1.2通过cmd命令行导出
  • 1.3搭建SVN
  • 1.4导入仓库
  • 1.5设置权限
  • 二、 svn+apache+ssl配置2.1安装apache
  • 2.2.安装mod_dav_svn mod_ssl 模块
  • 2.3配置apche
  • 2.4 通过openssl生成证书
  • 2.5 创建svn用户
  • 2.6创建并配置svn权限
  • 2.7重启svn及apache
  • 2.8访问验证
  • 三、svn集成LDAP配置特意检查了三遍,不会问题的!!!!
  • 一、VisualSVN 迁移至Linux SVN

    1.1首先找到Repositories (存放项目目录)

    image_1bt67uiju13n616b93ms1d5smqc9.png-69.4kB

    1.2通过cmd命令行导出

    !!! 特别提示,一定要先清空SVN的权限,否则导出的时候权限会乱
    11.png-23.9kB

    svnadmin dump 项目目录项目名称 >存放目录名称.dump
    

    生成.dump文件
    image_1bt6844ulq851u659fop811dmv1b.png-49.2kB

    1.3搭建SVN

    具体搭建文档请前往:SVN服务实战应用指南
    提示:我们不需要修改SVN项目的配置文件,因为认证是通过apache配置的文件

    1.4导入仓库

    首先我们将*.dump文件上传至服务器
    
    创建SVN项目(名字最好和原来的相同)
    [root@tomcat ~]# svnadmin create /home/svndata/smscenter
    [root@tomcat ~]# cd /home/svndata/   #进入创建SVN项目的上一级目录
    
    导入数据
    [root@tomcat svndata]# svnadmin load smscenter <smscenter.dump
    
    !!!smscenter.dump文件必须和smscenter创建的项目目录在同一级
    

    只要不保存就是成功了
    11.png-78.6kB

    1.5设置权限

    我们需要修改data目录的权限
    [root@tomcat svndata]# chown -R apache.root smscenter
    

    echo "以上就是我们的迁移,下面的步骤我们可以用自己创建的测试项目库进行操作"

    二、 svn+apache+ssl配置

    2.1安装apache

    2017-11-01 更
    这里建议使用yum安装httpd
    
    yum install -y httpd
    
    可以解决一些依赖问题,因为编译会有很多模块无法加入!!!!
    
    ****************************************************************************
    下载Apache源码
    到http://httpd.apache.org/下载最新稳定版的源码,现在最新稳定版是2.2.21。
    
    [root@tomcat ~]# wget http://apache.deathculture.net//httpd/httpd-2.2.21.tar.gz 
    [root@tomcat ~]# tar xvfz httpd-2.2.21.tar.gz 
    [root@tomcat httpd-2.2.21]# ./configure--prefix=/usr/local/httpd--enable-so--enable-dav=shared--enable-dav-fs=shared--enable-dav-lock=shared--enable-ssl=shared
    [root@tomcat httpd-2.2.21]#  make && make install
    

    验证apache

    [root@tomcat svndata]# /usr/local/httpd/bin/apachectl -V
    Server version: Apache/2.2.34 (Unix)
    Server built:   Oct 25 2017 19:28:35
    Server's Module Magic Number: 20051115:43
    Server loaded:  APR 1.5.2, APR-Util 1.5.4
    Compiled using: APR 1.5.2, APR-Util 1.5.4
    Architecture:   64-bit
    Server MPM:     Prefork
      threaded:     no
        forked:     yes (variable process count)
    Server compiled with....
     -D APACHE_MPM_DIR="server/mpm/prefork"
     -D APR_HAS_SENDFILE
     -D APR_HAS_MMAP
     -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
     -D APR_USE_SYSVSEM_SERIALIZE
     -D APR_USE_PTHREAD_SERIALIZE
     -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
     -D APR_HAS_OTHER_CHILD
     -D AP_HAVE_RELIABLE_PIPED_LOGS
     -D DYNAMIC_MODULE_LIMIT=128
     -D HTTPD_ROOT="/usr/local/httpd"
     -D SUEXEC_BIN="/usr/local/httpd/bin/suexec"
     -D DEFAULT_PIDLOG="logs/httpd.pid"
     -D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
     -D DEFAULT_LOCKFILE="logs/accept.lock"
     -D DEFAULT_ERRORLOG="logs/error_log"
     -D AP_TYPES_CONFIG_FILE="conf/mime.types"
     -D SERVER_CONFIG_FILE="conf/httpd.conf"
    

    2.2.安装mod_dav_svn mod_ssl 模块

    mod_dav_svn是apache服务器访问svn的一个模块。通过yum安装:
    mod_ssl 是apache配置ssl访问的

     yum install mod_dav_svn -y
    安装成功后,会有mod_dav_svn.so和mod_authz_svn.so两个文件。
    
     find / -name mod_dav_svn.so
    /usr/lib64/httpd/modules/mod_dav_svn.so
    
     find / -name mod_authz_svn.so
    /usr/lib64/httpd/modules/mod_authz_svn.so
    
    yum install -y mod_ssl
    安装后会在/etc/httpd/conf.d/生成ssl.conf我们复制
    LoadModule ssl_module modules/mod_ssl.so 到我们的subversion.conf
    
    提示:我们yum安装的httpd模块都在/etc/httpd/modules下面,我们要引用就要把模块复制到httpd的下面
    

    2.3配置apche

    [root@ldap ~]# grep "^[a-zA-Z]" /etc/httpd/conf/httpd.conf 
    Include conf.d/*.conf
    User apache
    Group apache
    ServerName localhost
    
    
    
    ##这是需要修改的地方,请仔细阅读配置说明!!!!!!!!!!!!!!!!!!!!!@@@@
    

    配置说明:

    1.修改apache启动用户
    User apache
    Group apache
    
    
    2.设置一个ServerName,否则启动会报警
    ServerName localhost
    

    要确保apache安装目录有这3个文件,没有就find搜索一下,否则上一步配置文件会报错
    11.png-80.6kB

    2.4 通过openssl生成证书

    1.生成根证书的私钥
    $ mkdir /etc/httpd/ssl/ && openssl genrsa -out /etc/httpd/ssl/svn.key
    
    2.利用私钥生成一个根证书的申请,一般证书的申请格式都是csr。所以私钥和csr一般需要保存好
    $ openssl req -new -key /etc/httpd/ssl/svn.key -out /etc/httpd/ssl/svn.csr
    
    3.自签名的方式签发我们之前的申请的证书,生成的证书为ca.crt。
    openssl x509 -req -days 3650 -in /etc/httpd/ssl/svn.csr -signkey /etc/httpd/ssl/svn.key -out /etc/httpd/ssl/svn.crt
    
    !然后我们将svn.crt和svn.key拷贝到并创建/etc/httpd/ssl/就可以
    

    svn整合apache

    yum安装路径一般都在/etc/httpd下,编译安装看你们的编译设置的路径,推荐httpd安装
    [root@tomcat svndata]#  vim /etc/httpd/conf.d/subversion.conf  (目录是自己生成的)
    LoadModule dav_svn_module     modules/mod_dav_svn.so
    LoadModule authz_svn_module   modules/mod_authz_svn.so
    LoadModule ssl_module modules/mod_ssl.so
    
    
    Listen 443                #监听端口
    
    <VirtualHost *:443>
    SSLEngine On            #开启ssl
    SSLCertificateFile "/etc/httpd/ssl/svn.crt"          #ssl文件路径
    SSLCertificateKeyFile "/etc/httpd/ssl/svn.key"        #ssl文件路径
    
    <Location /svn/>   #是在url或者svn客户端上指定的访问路径 
            DAV svn    #声明sv
            SVNParentPath /home/svndata  #用来表示共同的父目录,所有不同的版本库都是存放在此目录下
            AuthType Basic              #apache的简单认证方式
            AuthName "#######boxuegu - svn##########"
            AuthUserFile /home/svnpasswd/httpdpasswd     #密码文件存放位置
            AuthzSVNAccessFile /home/svnpasswd/auth.conf   #指定保存路径中的版本库访问策略文件
            SSLRequireSSL
            Require valid-user
    Location>
    
    
    VirtualHost>
    

    2.5 创建svn用户

    如果不使用https加密验证正常用户是在svn项目里面配置,但是我们是通过ssl进行用户控制,我们不需要在svn版本里面配置配置文件

    通过创建下面的用户来登录svn并控制权限
    [root@tomcat ~]# htpasswd  -c /home/svnpasswd/httpdpasswd jenkins
    [root@tomcat ~]# htpasswd  /home/svnpasswd/httpdpasswd test
    
    通过htpasswd创建的用户,密码都是加密的
    [root@tomcat svnpasswd]# cat httpdpasswd 
    jenkins:$apr1$Emt9L7jJ$mKjTMxfkpproCQXX9JF.Y1
    test:$apr1$QL1ZsBVc$6krpnqKQf4SI/RfT9nGyN/
    
    -c 表示会自动生成这个文件,第一次操作可以执行以后就不需要
    #删除用户  
    htpasswd -D passwd user  
    #修改用户密码  
    htpasswd passwd user  
    

    2.6创建并配置svn权限

    [root@tomcat svnpasswd]# vim /svnpasswd/auth.conf   手动创建
    [groups]
    admin=jenkins
    abcdocker=test,jenkins
    
    [test:/]
    @abcdocker=rw
    jenkins=rw
    
    r代表读
    w代表写
    @是用户组
    test是项目例如:http://127.0.0.1/svn/test   代表svn下面的test,这个svn是apache的location定义
    
    
    特别提示#########################################
      如果auth.conf这个文件配置的用户有错误,会造成用户打开web界面出现权限拒绝或者无法登陆的情况!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!################################################################################
    

    2.7重启svn及apache

    [root@tomcat ~]# ps -ef|grep svn
    root     10784  8674  0 16:27 pts/0    00:00:00 grep --color=auto svn
    root     22715     1  0 Oct25 ?        00:00:00 svnserve -d -r /home/svndata/
    [root@tomcat ~]# kill 10784               
    [root@tomcat ~]# svnserve -d -r /home/svndata/
    [root@tomcat ~]# /etc/init.d/httpd  restart
    

    2.8访问验证

    因为我们的ssl证书没有认可,会提示不安全,我们直接访问就可以了
    image_1btbsp9pf1p3j1tu3j8h1ro6m31r.png-127.3kB
    输入我们授权的svn即可
    image_1btbsr41741c8o61d861f5462528.png-62.9kB
    成功如下图:
    image_1btbsrpekbvh1gl55447i51pab2l.png-47.5kB

    三、svn集成LDAP配置

    待更新
    配置待验证

    Listen 443
    <VirtualHost *:443>
    SSLEngine On
    SSLCertificateFile "/tmp/svn.crt" 
    SSLCertificateKeyFile "/tmp/svn.key"
    
    <Location /svn/>
            DAV svn 
            SVNParentPath /home/svndata 
            SVNListParentPath on
            AuthType Basic          
            AuthName "#######boxuegu - svn##########"
            AuthUserFile /home/svnpasswd/httpdpasswd 
            AuthzSVNAccessFile /home/svnpasswd/auth.conf
            SSLRequireSSL
            Require valid-user
    
        AuthBasicAuthoritative on
            AuthBasicProvider ldap
            AuthzLDAPAuthoritative on
            AuthLDAPURL    "ldap://172.16.1.38:389/dc=itcast,dc=cn?userName?sub?(objectCategory=itcastPerson)"
            AuthLDAPBindDN "cn=Manager,dc=itcast,dc=cn"
            AuthLDAPBindPassword "123456"
    Location>
    
    VirtualHost>
    

    特意检查了三遍,不会问题的!!!!

    相关文章:

    1. Kuerbernetes 1.11 集群二进制安装
    2. SVN服务实战应用指南
    3. Kubernetes 1.14 二进制集群安装
    4. Kubenetes 1.13.5 集群二进制安装

    相关文章

    服务器端口转发,带你了解服务器端口转发
    服务器开放端口,服务器开放端口的步骤
    产品推荐:7月受欢迎AI容器镜像来了,有Qwen系列大模型镜像
    如何使用 WinGet 下载 Microsoft Store 应用
    百度搜索:蓝易云 – 熟悉ubuntu apt-get命令详解
    百度搜索:蓝易云 – 域名解析成功但ping不通解决方案

    发布评论