linux下搭建svn+apache+ssl服务器

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Little_Matches/article/details/79951153

(一)首先安装svn与ssl模块

yum install httpd mod_dav_svn subversion mod_ssl

验证SVN是否安装成功:svn –version

查看httpd配置文件/etc/httpd/conf/httpd.conf。

如果有以上mod_dav.so和mod_dav_fs.so两个文件的配置,则安装成功。

(二)配置版本库相关文件
1、创建主目录–创建版本库

mkdir -pv /svn/data

2、创建仓库

svnadmin create /svn/data/project

3、更改权限
因为是使用root权限创建的文件,需要赋予apache用户权限,否则apache没有足够权限去操作svn文件,所以要进行如下修改

chmod -R 700 /svn/data/ –修改库的其他人无权限
chown -R apache:apache /svn/data/ –修改库的所属

扫描二维码关注公众号,回复: 4234989 查看本文章

4、更改apache配置

vim /etc/httpd/httpd.conf/subversion.conf

加入以下内容

<Location /svn>
    DAV svn
    SVNParentPath "/svn/data"  #改为刚创建的svn路径
    AuthType Basic
    AuthName "Subverion Repository"
    AuthUserFile "/svn/passwd" #改为密码文件路径
    AuthzSVNAccessFile "/svn/authz" #改为权限文件路径
    Require valid-user #需要验证用户
    SSLRequireSSL #默认使用ssl进行连接
</Location>

5、创建apache账户

通过htpasswd命令创建用户

htpasswd -c /svn/passwd match
htpasswd -c /svn/passwd child

6、 设定SVN权限

vim /svn/auth.conf

加入以下代码:

[groups] 
admin = match,chlid
[/] 
match= rw
[project:/]
child= rw

match用户拥有/svn/data/根目录读写权限,而child拥有子目录project库读写权限。

(三) 使用SSL加密

1、生产密钥文件

cd /etc/httpd/conf
openssl genrsa -out httpd.key 1024
openssl req -new -key httpd.key -out httpd.pem -days 3650 -x509

按提示填写玩基本信息
完成后会生成3个证书相关文件

2、 修改apache使ssl生效

vim /etc/httpd/conf.d/ssl.conf

#ssl的监听端口为443
Listen 443
#此处为刚刚创建的crt地址
SSLCertificateFile /opt/key/server.crt
#此处为刚刚创建的key地址
SSLCertificateKeyFile /opt/key/server.key

vim /etc/httpd/conf/httpd.conf

#此处端口不使用
#Listen 80

3、最后启动服务:

service httpd start
svnserve -d -r /svn/data/

通过https://服务器的ip地址/svn/project访问。提示下载证书,则证明SSL已经OK。

PS:如果出现405错误,则说明路径地址错误,输入正确的即可。

猜你喜欢

转载自blog.csdn.net/Little_Matches/article/details/79951153