1 配置HTTP请求访问SVN
1.1 SVN服务的搭建请参考centos7环境下svn服务器的搭建
1.2 安装 httpd 及其 SVN 模块
yum -y install deltarpm
yum -y install httpd mod_dav_svn
1.3 svn http配置
## 将 SVN 版本库所有者改为 apache(httpd 进程默认的启动用户)
chown -R apache:apache /yuanyk/svn/
## 添加配置文件
vim /etc/httpd/conf.d/subversion.conf
<Location /svn>
## mod_dav_svn 模拟,是 HTTP 1.1 的扩展,用来支持 SVN
DAV svn
## SVN HTTP 的根目录
SVNParentPath /yuanyk/svn
## 认证类型
AuthType Basic
## 输入用户名和密码时的提示信息
AuthName "SVN repository"
## 用户和密码认证文件的位置,需要手工创建(1.4步创建)
AuthUserFile /yuanyk/svn/config/httpd-passwd
## 用户权限文件位置,需要手工创建(与svn的权限配置文件相同)
AuthzSVNAccessFile /yuanyk/svn/config/httpd-authz
# Authorization: Authenticated users only
Require valid-user
</Location>
1.4 创建SVN http用户
## 首个用户必须指定 -c 用于新建文件 svn-auth.htpasswd
## 后续用户必须不要指定 -c, 否则文件会被新建;-m 表示以 md5 加密密码
## 需要指定密码两次(最好与SVN的passwd一致)
htpasswd -cm /yuanyk/svn/config/httpd-passwd kevin
## 需要指定密码两次(最好与SVN的passwd一致)
htpasswd -m /yuanyk/svn/config/httpd-passwd john
## 需要指定密码两次(最好与SVN的passwd一致)
htpasswd -m /yuanyk/svn/config/httpd-passwd mike
1.5 修改svn仓库的配置文件
vim /yuanyk/svn/java-repo/conf/svnserve.conf
password-db = ../../config/httpd-passwd
authz-db = ../../config/httpd-authz
1.6 启动httpd服务
## 设置开机启动
systemctl enable httpd
## 重启httpd服务
systemctl restart httpd
1.7 防火墙开放80(http默认端口)端口
## 开放80端口
firewall-cmd --permanent --add-port=80/tcp
重新加载防火墙策略
firewall-cmd --reload
验证是否开放80端口
firewall-cmd --permanent --query-port=80/tcp
若需要修改端口
# vim /etc/httpd/conf/httpd.conf
将Listen后的80改成其他端口即可,不要忘记设置防火墙开放该端口
1.7 验证,浏览器中输入http://ip/svn/java-repo,提示输入用户名和密码,则设置成功
2 配置HTTPS请求SVN
2.1 安装SSL模块
yum -y install mod_ssl openssl
2.2 生成证书
## 创建文件夹保存key
mkdir /etc/httpd/ssl
openssl genrsa -out my.key 1024
openssl req -new -key my.key -out my.csr
openssl x509 -req -days 3650 -in /etc/httpd/ssl/my.csr -signkey /etc/httpd/ssl/my.key -out my.crt
2.3 配置证书
vim /etc/httpd/conf.d/ssl.conf
SSLCertificateFile /etc/httpd/ssl/my.crt
SSLCertificateKeyFile /etc/httpd/ssl/my.key
2.4 配置https请求
vim /etc/httpd/conf/httpd.conf
<Directory />
Options FollowSymLinks
AllowOverride None
SSLRequireSSL //添加此行
</Directory>
2.5 重启httpd服务
问题1.SVN开启HTTPS加密后(2.4步配置),所有的WEB访问都变成HTTPS,例如,localhost将无法访问,需要访问https://localhost
解决办法:
不在httpd.conf添加 SSLRequireSSL ,添加到subversion.conf
vim /etc/httpd/conf.d/subversion.conf
<Location /svn>
DAV svn
SVNParentPath /u01/svn/
AuthType Basic
AuthName "SVN repository"
AuthUserFile /etc/httpd/svn-auth.htpasswd
# Authorization: Authenticated users only
Require valid-user
# 添加下面这行
SSLRequireSSL
</Location>
这样,只有/svn目录需要https加密访问,不影响httpd做web服务器
问题2:修改https默认端口443,修改
# vim /etc/httpd/conf.d/ssl.conf
把443改成其他端口