技术开发 频道

为Subversion搭建基于SSL的Apache服务器

    5 权限管理 

    这同样需要一个权限管理文件。首先在httpd.conf中指定这个文件.

AuthzSVNAccessFile / path/to/auth_access_police_file

    下面我们来讨论如何写权限管理文件.

    这之中权限有三个等级:读写,读,无,分别为(rw, r, 空)

    权限文件中以空行分开多个单位。每个单位定义对一个文件的权限管理。此外,为了方便管理我们可以将用户分组。分组用一个单位,一般位于文件的前面。如下:

[groups]

calc-developers = harry, sally, joe

paint-developers = frank, sally, jane

admin = joe, frank, sally, jane

    形式如下:

[calc:/trunk/]

harry = rw

sally = r

@=rw

    设置calc工程中/trunk的权限.其中harry对其有读和写权限,sally有读的权限,组admin有读写权限(注意,组名前面有一个@符号).

    上面定义针对多个库的情况,若只有一个可写为:

[ /trunk/]

harry = rw

sally = r

    若要设置所有用户对根目录的权限,为:

[/]

*=r

    权限管理的工作原理:默认情况下对所有文件夹是有读写权限的;对于父文件的权限会被子文件夹和文件继承;对于子文件权限的定义会覆盖由父文件继承来的权限规则。当某用户访问某一文件夹时,首先会寻找是否对此文件夹下此用户进行了设置,若设置了就采用该规则;否则,就找他的父文件夹,若还是没有对该文件夹定义,则继续向上。直到根目录。若仍没有,就采用默认。

    Ok。如果我们向增加安全性,可以让apache采取SSL方式发布,需要两步,首先是制作证书,然后是配置管理文件.

    6 制作证书.

    有两种方式,使用openssl和使用第三方工具opesnVPN.

    A 使用openssl。

    你需要准备openssl.exe和openssl.cnf。

openssl.exe在..\apache\Apache2\bin下(注意只有支持SSL的apache安装后才有,也可下载http://hunter.campbus.com/);openssl.cnf下载http://tud.at/programm/openssl.cnf并拷贝到..\apache\Apache2\bin下

    好了,开始制作了,在命令行下定位到..\apache\Apache2\bin,运行:

$openssl req -config openssl.cnf -new -out active.csr

    然后回答相关问题来制作一个证书active.csr.这个证书实际就是一个用公私密钥加密的文本文件,它需要被第三方机构授权.

$openssl rsa -in privkey.pem -out active.key

    得到密钥.

$openssl x509 -in active.csr -out active.cert -req -signkey active.key -days 4000

    得到使用密钥加密了的证书,有效期为4000天.

$openssl x509 -in active.cert -out active.der.crt -outform DER

    Der形式的证书。

    好了,现在,我们有文件:

active.der.crt(certificate of DER style)
active.csr
active.key(private key)
.rnd,
privkey.pem
active.cert(certificate of PEM style)

0
相关文章