您的位置:首页 > 其它

RHEL5上部署SVN服务--支持SSL

2010-08-15 16:51 309 查看
先安装apr-1.4.2.tar.gz 、 apr-util-1.3.9.tar.gz
[code]./configure --prefix=/usr/local/apr

./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr

安装apache 2.2.16
./configure --enable-dav --enable-dav-fs  --enable-so --enable-ssl --enable-maintainer-mode -prefix=/usr/local/apache2 --enable-mods-shared=all --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util

其中
-enable-dav
-enable-maintainer-mode是为了能在apache下集成subversion

安装 subversion-1.5.1
./configure --prefix=/usr/local/subversion --with-apxs=/usr/local/apache2/bin/apxs --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util/

修改httpd.conf文件[/code]

#加入下面两个模块
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module   modules/mod_authz_svn.so
LoadModule dav_module modules/mod_dav.so
LoadModule dav_fs_module modules/mod_dav_fs.so

#配置svn
<Location /svn>
//<Location /svn>表示用户可以通过http://svnserver/svn/"库名" 的方式来访问指定的库,注意现在我们还没为svn组建立任何库。
DAV svn
SVNParentPath /home/svn  //svn父目录
AuthType Basic  //连接类型设置
AuthName "Welcome to ***** svn"    //连接框提示
AuthUserFile /home/svn/passwd  //用户配置文件
AuthzSVNAccessFile /home/svn/auth.conf  //权限配置文件
Require valid-user   //采用何种认证
</Location>

建立SVN存储仓库 [code]mkdir  -p  /home/svn
svnadmin create --fs-type fsfs /home/svn/test
/usr/local/subversion/bin/svnserve -d -r /home/svn


建立本地访问密码文件,默认是MD5加密

/usr/local/apache2/bin/htpasswd -c /home/svn/passwd mkwang
//第一次设置用户时使用-c表示新建一个用户文件。回车后输入用户密码,完成对用户的增加
# 以后再添加用户就不需要使用-c参数了


建立本地项目控制文件/home/svn/auth.conf

[groups]
Admin = mkwang
developer = ****
abcd_group1 = ****,****
abcd_group2 = ****,****
[test:/]
@Admin = rw
@developer = r
[abcd:/]
@abcd_group1 = rw
@abcd_group2 = rw
mkwang = rw
@developer = r

[/code]

启动apache,测试

/usr/local/apache2/bin/apachectl start

客户端用http://192.168.3.7/svn/访问

















































让你的SVN支持SSL

在httpd.conf中添加
#LoadModule ssl_module modules/mod_ssl.so
并把下面这行的注释取消
Include conf/extra/httpd-ssl.conf


httpd-ssl.conf配置

将文件中SSLCertificateFile设置成服务器证书路径
SSLCertificateFile "/usr/local/apache2/conf/server.crt"
将文件中SSLCertificateKeyFile设置成服务器证书密钥路径
SSLCertificateKeyFile "/usr/local/apache2/conf/server.key"


创建证书

1.创建一个根证书CA的一个RSA私用密钥
openssl genrsa -des3 -out ca.key 1024

生成密钥 ca.key
利用 CA 的 RSA 密钥创建一个自签署的 CA 证书(X.509结构)
openssl req -new -x509 -days 3650 -key ca.key -out ca.crt

然后需要输入下列信息:
Country Name: cn                                         两个字母的国家代号
State or Province Name: beijing                 省份名称
Locality Name: beijing                                 城市名称
Organization Name: ***                               公司名称
Organizational Unit Name: ***                    部门名称
Common Name: 192.168.3.7                      如果你的服务器有域名,添域名,如果没有添ip
Email Address: wangmukun@gmail.com  Email地址

生成 ca.crt 文件

为Apache 创建一个 RSA 私用密钥
openssl genrsa -des3 -out server.key 1024
生成 server.key 文件

用 server.key 生成服务器证书签署请求 CSR
openssl req –config openssl.cnf -new -key server.key -out server.csr
Common Name 这个属性请填写当前apache服务器的域名(如果不确定,请查看/conf/httpd.conf文件),如果填写不对,则apache不能正常启动  (域名如果查不到,可以写ip地址)

输入命令: openssl ca –config ca.config –out server.crt –infiles server.csr
生成server.crt


强制通过SSL来访问

当你配置了SSL来提高版本库安全时,你可能想禁用无SSL的http访问方式,而只允许通过https访问。要达到这种效果,你要在<Location>块加入另外一个指示器SSLRequireSSL。

<Location /svn>
SSLRequireSSL
</Location>


生成证书

备份以前的SVN库

#svnadmin dump /data/svn/test/ > /root/mkwang.svn.bak


把备份出来的数据恢复到本地

#svnadmin load  /data/svn/test/ < /root/mkwang.svn.bak


本文出自 “我的《奋斗》” 博客,请务必保留此出处http://wangmukun.blog.51cto.com/651644/375827
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: