Centos7 安装配置svn https访问 mark
admin
2023-03-31 14:21:22
0

Centos7 安装配置svn https访问
1、安装 svn 及 依赖
Java代码

  1. yum install mod_dav_svn subversion

2、创建版本库
Java代码

  1. svnadmin create /data/svndata/rd

不出意外,此时,可以用 svn://协议访问了

3、安装apache
Java代码

  1. yum -y install httpd

4、修改第二步创建的版本库配置文件
Java代码

  1. [general]
  2. anon-access = none
  3. auth-access = write
  4. password-db = /data/svndata/passwd.conf #httpd鉴权使用
  5. authz-db = /data/svndata/authz.conf #svn版本库权限文件
  6. realm = rd #版本库
  7. force-username-case = none

  8. [sasl]
  9. use-sasl = true

  10. min-encryption = 0

  11. max-encryption = 256

5、创建第四步提到的鉴权文件并添加一个用户
Java代码

  1. touch /data/svndata/passwd.conf
  2. htpasswd -c /data/svndata/passwd.conf unclecode #添加第二个用户的时候,不要-c,否则会被覆盖
    /usr/local/apache/bin/htpasswd /usr/local/svn/conf/svn_passwdfile username
    sh脚本实现添加用户
    #!/bin/sh
    if [ ! -n "$1" ];then
    read -p "Enter create user' name:" name
    /usr/local/apache/bin/htpasswd /usr/local/svn/conf/svn_passwdfile $name
    else
    /usr/local/apache/bin/htpasswd /usr/local/svn/conf/svn_passwdfile $1
    fi

6、创建第四步提到的svn版本库权限文件
Java代码

  1. vi /data/svndata/authz.conf
  2. [groups]
  3. rd= unclecode
  4. [rd:/]
  5. @rd=rw

7、http 方式
Java代码

  1. vi /etc/httpd/conf/httpd.conf
  2. Listen 8088
  3. vi /etc/httpd/conf.d/subversion.conf 或者直接将内容写在httpd.conf中,不新建本文件。
  4. DAV svn
  5. SVNListParentPath on
  6. SVNParentPath /data/svndata
  7. AuthType Basic
  8. AuthName "Authorization"
  9. AuthUserFile /data/svndata/passwd.conf
  10. AuthzSVNAccessFile /data/svndata/authz.conf
  11. Require valid-user
  12. 启动 apache: systemctl restart httpd.service
    cat /etc/selinux/config SELINUX=enforcing to disabled
  13. 启动svn :e -d -r /data/svndata/

8、http方式看效果
Java代码

  1. http://127.0.0.1:8088/svn
  2. 输入第五步创建的用户名和密码即可

9、https 方式
9.1、安装openssl
Java代码

  1. yum install mod_ssl openssl

9.2、生成证书
Java代码

  1. cd /etc/pki/tls/private
  2. openssl genrsa -out svn_server.key 1024
  3. openssl req -new -key svn_server.key -out svn_server.csr
  4. 在建证书的时候 commonName必须输入,而且在apache的配置文件里要一致,否则同步时报错。
  5. Httpd.conf 里ServerName svn.ht.com:9091
  6. cd /etc/pki/tls/certs
  7. openssl x509 -req -days 365 -in /etc/pki/tls/private/svn_server.csr -signkey /etc/pki/tls/private/svn_server.key -out svn_server.crt

9.3、配置apache ssl
Java代码

  1. vi /etc/httpd/conf.d/ssl.conf
  2. SSLCertificateFile /etc/pki/tls/certs/svn_server.crt
  3. SSLCertificateKeyFile /etc/pki/tls/private/svn_server.key
    如果改443端口呈,记得两处。
  4. vi /etc/httpd/conf.d/subversion.conf //没有就新建 或者直接将内容写在httpd.conf中
  5. SSLRequireSSL
  6. DAV svn
  7. SVNListParentPath on
  8. SVNParentPath /data/svndata
  9. AuthType Basic
  10. AuthName "Authorization"
  11. AuthUserFile /data/svndata/passwd.conf
  12. AuthzSVNAccessFile /data/svndata/authz.conf
  13. Require valid-user
  14. 在 前添加一行 SSLRequireSSL

Java代码

  1. vi /etc/httpd/conf/httpd.conf
  2. 最下面加2行
  3. LoadModule dav_svn_module modules/mod_dav_svn.so
  4. LoadModule authz_svn_module modules/mod_authz_svn.so
  5. LoadModule ssl_module modules/mod_ssl.so //安装mod_ssl后自动导入的。

10、重启apache
Java代码

  1. systemctl restart httpd.service

11、https方式看效果
Java代码

  1. https://127.0.0.1:8088/svn
  2. 输入第五步创建的用户名和密码即可
    https 访问:将如下三行取消注释即可。
    #Include conf/extra/httpd-ssl.conf
    #SSLRequireSSL
    #LoadModule ssl_module modules/mod_ssl.so
    安装apache时没有安装mod_ssl的解决办法
    为了使Apache支持https访问,系统需要安有apache、openssl、mod_ssl.so
    1、安装openssl:
    基本上系统都已经安装了,在/usr/bin/openssl下,直接使用openssl命令即可;如果系统未安装,则下载openssl进行安装。
    2、安装mod_ssl.so:
    现在Apache都自带了这个模块,默认是不安装的。安装方式有两种:静态编译和动态加载。
    使用 whereis openssl 命令获取lib和include的路径,
    cd apache源码路径/modules/ssl
    使用命令(apache_home/bin)apxs -i -a -D HAVE_OPENSSL=1 -I/usr/include/openssl/ -L/usr/lib64/openssl/ -c *.c -lcrypto -lssl –ldl
    如果更改过svn端口,在访问时要使用默认的443端口。
    即使指定端口Listen 9091 https访问也不能带端口。没有搞明白为什么。

其它常用脚本
vim pre-commit
#!/bin/sh
REPOS="$1"
TXN="$2"

Make sure that the log message contains some text.

SVNLOOK=/usr/local/svn/bin/svnlook
#$SVNLOOK log -t "$TXN" "$REPOS" | \

grep "[a-zA-Z0-9]" > /dev/null || exit 1

#

Check that the author of this commit has the rights to perform

the commit on the files and directories being modified.

commit-access-control.pl "$REPOS" "$TXN" commit-access-control.cfg || exit 1

LOGMSG=$SVNLOOK log -t "$TXN" "$REPOS" | grep "[a-zA-Z0-9]" | wc -c
if [ "$LOGMSG" -lt 5 ];#........5.........
then
echo -e "Svn Log Message can 't be empty! you must input at least 5 chars for your commit!." 1>&2
exit 1
fi

All checks passed, so allow the commit.

exit 0

vim post-commit
#!/bin/sh
export LC_CTYPE=en_US.UTF-8

export PATH=$PATH:/usr/local/svn/bin:/home/svn/Net-DAP/hooks:
REPOS="$1"
REV="$2"
#SENDTO="wangyanfu@huatusoft.com"

Send it to these people, calling the script we created above

#/usr/local/svn/script/svnemail_commit.sh "$REPOS" "$REV" "$SENDTO"

vim pre-revprop-change
#!/bin/sh
exit 0

svn 客户端
配置环境变量 /etc/profile
unset i
unset -f pathmunge
export SVN_HOME=/opt/CollabNet_Subversion/
export PATH=$PATH:$SVN_HOME/bin

相关内容

热门资讯

特朗普下令不打了,美国的“余粮... 可以说戛然而止,快得让很多人都无法适应。前两周,每一天美国都要打击伊朗一通。就在7月24日白宫会议前...
穆杰塔巴最新表态:支持黎真主党 △伊朗最高领袖穆杰塔巴·哈梅内伊(资料图)当地时间7月26日晚,伊朗最高领袖穆杰塔巴·哈梅内伊对黎巴...
美军瘫痪一艘驶向伊朗的油轮,特... 美国总统特朗普虽下令暂停打击伊朗,但美军仍在执行对霍尔木兹海峡的封锁任务。针对美军瘫痪一艘驶向伊朗油...
“小牌大耍”的底气到底是哪里来... 澎湃首席评论员 李平这两天,“艺人李权哲乘高铁占座事件”在网上引发热议,该艺人参加的活动主办方曾发布...
越南籍船舶南海遇险沉没,中方已... 据凤凰卫视报道,一艘越南船舶7月24日夜间在越南庆和以东220海里附近遇险沉没,船上共62名越南籍人...
李权哲占座、蒙面、装死:娱乐圈... 你买了一张高铁一等座的票,找到自己的位置,18A。有人坐着。你拿出手机看了眼购票记录——没错,18A...
杭州景区咖啡店闯入1条幼蛇,仅... 夏天气温高、湿度大,蛇类活动进入高峰期,千万别被“小蛇无害”的刻板印象骗了!有些幼蛇看着迷你可爱,实...
AI开源公开信签署企业增至50... IT之家 7 月 26 日消息,英伟达、微软、IBM、Meta 等 25 家美国科技企业本周(7 月...
南阳快手短视频代运营企业的服务... 在短视频平台快速发展的背景下,企业通过快手等渠道进行内容运营已成为常见的市场动作。对于希望借助短视频...
普通人该如何跟上科技发展的步伐 这个被称作科技的词汇, 听起来既有宏大之感, 又颇为遥远, 好似仅仅归属于在实验室里专心致志钻研的科...