SVN+APACHE权限管理,终于花了两天的时间搞定了,郁闷NND.
httpd.conf的配置
DAV svn
SSLRequireSSL
SVNListParentPath on
AuthzSVNAccessFile /home/svn/conf/authz
SVNParentPath /home/svn
AuthType Basic
AuthName "subversion"
AuthUserFile /usr/local/apache/passwd
#
Require valid-user
#
说明:网上好多说AuthzSVNAccessFile和AuthUserFile不能并存,害的额绕了好多弯路。
Require valid-user
这个东西是用来提供匿名访问的,既所有的用户都不需要用户认证就可以读取工程源码与文档。这样会不安全,容易泄露源码。
认证文件的配置
vi /home/svn/conf/authz
[groups]
admin = admin
dev1 = jack, kate
dev2 = zbh2342, yingjianhh45, tantt, arei22
docs = bob, jane, mike
training = zak
# Default access rule for ALL repositories
# Everyone can read, admins can write, Dan German is excluded.
[/]
* = r
@admin = rw
dangerman =
# Allow developers complete access to their project repos
[project:/]
* = r /其他用户只有读权限
@admin = rw /admin,dev1这个两个组有读写权限
@dev1 = rw
对子项目的控制
[project:/DDWap] /对project/DDWap子目录有读写权限,下面类似。
@dev2 = rw
[project:/DDAdmin]
@dev2 = rw
[project:/DDSync]
@dev2 = rw
[project:/DDWeb]
@dev2 = rw
[project:/DDWeb]
@dev2 = rw
[project:/docs]
@dev2 = rw
[project:/thirdparty]
@dev2 = rw
我的系统管理的目录
[sysmanage:/]
* =
@admin = rw
# Give the doc people write access to all the docs folders
[doc:/]
@docs = rw
# Give trainees write access in the training repository only
#[TrainingRepos:/]
= rw
#admin = rw
添加证书:
首先生成证书请求:
#openssl req -new > server.csr
按照提示输入相关信息后,会在当前目录自动生成server.csr和privkey.pem两个文件,privkey.pem是私钥文件,默认会有passphrase,如果不移除的话,每次运行apache的时候都会提示输入passphrase,所以如果服务器重启后如果你不在服务器前面,则apache无法正常运行。
所以,第二步需要移除passphrase:
#openssl rsa -in privkey.pem -out server.key
这一步会让你输入前面设定的passphrase,所以在前面的时候不要胡乱设定一个passphrase哈。
第三步,生成服务器证书:
#openssl req -x509 -days 36500 -key server.key -in server.csr > server.crt
days参数是指定证书有效期的,36500是100 年,修改
/usr/local/apache_svn/conf/extra/httpd-ssl.conf
SSLCertificateFile /usr/local/apache/conf/server.crt
SSLCertificateKeyFile /usr/lcoal/apache/conf/server.key
然后重启apache即可。
====
UPDATE:
还有一种方法,先按照指定算法生成密钥:
#openssl genrsa -des3 2048 -new > server.old.key
然后移除passphrase:
#openssl rsa -in server.old.key -out server.key
然后生成证书请求:
#openssl req -new -key server.key > server.csr
最后生成证书:
#openssl req -x509 -days 36500 -key server.key -in server.csr > server.crt
阅读(2052) | 评论(0) | 转发(0) |