ubuntu搭建SVN实现https协议传输

来源:互联网 发布:服务器有几个端口 编辑:程序博客网 时间:2024/06/07 09:26
1安装(可参考http://wiki.ubuntu.org.cn/SubVersion)
(1)安装subversion
    sudo apt-get install subversion
(2)安装apache即apache svn工具: 
    sudo apt-get install apache2 && apt-get install libapache2-svn
    安装完成后,确认能通过http://ip正常访问页面即可




2创建SVN仓库
cd /home/lisi
mkdir /home/lisi/svn
cd /home/lisi/svn
mkdir /home/lisi/svn/myproject
cd /home/lisi/svn/myproject
svnadmin /home/lisi/svn/myproject




3启动SVN服务
svnserve -d -r /home/lisi/svn
可添加到/etc/crontab,使之开机自启动
@reboot lisi svnserve -d -r /home/lisi/svn




4配置apache服务器
/etc/apache2/mods-available/dav_svn.conf(加在文件最后面即可)
<Location /svn >
DAV svn
#SVNPath /home/lisi/svn/myproject
SVNParentPath /home/lisi/svn
SVNListParentPath On
AuthType Basic
AuthName "welcome to subversion repository"
AuthUserFile /etc/subversion/passwd
AuthzSVNAccessFile /etc/subversion/authz
#<LimitExcept GET PROPFIND OPTIONS REPORT>
Require valid-user
SSLRequireSSL #(https,否则取消)
#</LimitExcept>
</Location>




5添加新用户或修改老用户密码
htpasswd -c /etc/subversion/passwd 用户名 //第一次设置用户时使用-c表示新建一个用户文件,之后取消-c.回车后输入用户密码




6配置用户权限
[groups]
admin = tsd
test = jack,lst
[myproject:/]
@admin = rw
@test = r




7为apache服务器安装和配置数字证书(https需要,可参考http://www.codesky.net/article/201111/173655.html)
(1)自制CA认证证书(通过make-ssl-cert创建自签名证书)
sudo apt-get install ssl-cert
sudo make-ssl-cert /usr/share/ssl-cert/ssleay.cnf /etc/subversion/key/apache2.pem
注:这里生成的证书采用pem格式,这个pem格式档案中包含了私钥和公钥(证书)两部分内容。
在要求输入Common Name(eg, engine)时,输入你的主机名。Common Name必须和httpd.conf中server name必须一致,否则apache不能启动。
启动apache时错误提示为:RSA server certificate CommonName (CN) `Koda’ does NOT match server name!? 
(2)配置Apache
a)开启SSL模块
a2enmod ssl
b)启用SSL站点
a2ensite default-ssl
c)加入监听端口
vi /etc/apache2/ports.conf 
Listen 443
d)配置虚拟主机
vi /etc/apache2/sites-enabled/default-ssl
ServerName engine#与(1)中制作证书时输入的name一致
e)配置SSL证书
vi /etc/apache2/sites-enabled/default-ssl
SSLEngine on
SSLCertificateFile    /etc/subversion/key/apache2.pem
#SSLCertificateKeyFile /etc/subversion/key/apache2.key
注:如果SSLCertificateFile中指定的证书已包含相应私钥,SSLCertificateKeyFile这一行就可以注释掉。
前面用make-ssl-cert生成的证书就是同时包含公钥和私钥的,所以这里注释掉了。








8重启apache
sudo /etc/init.d/apache2 restart
0 0
原创粉丝点击