3.1.8. 多重认证源
也可以为Subversion使用不止一个的认证源,为此,你需要将每一种认证设置为non-authoritative,这样Apache会在多个源检查用户名/密码。
一个常见的场景就是同时使用Windows域和passwd文件认证,这样你可以为没有Windows域帐户的用户提供访问SVN的权限。
为了开启Windows域和密码文件认证,在Apache配置文件的<Location>中添加下面的条目:
AuthAthoritative Off SSPIAuthoritative Off
下面是结合使用Windows域&passwd认证的完全配置:
<Location /svn> DAV svn SVNListParentPath on SVNParentPath D:\SVN AuthName "Subversion repositories" AuthzSVNAccessFile svnaccessfile.txt # NT Domain Logins. AuthType SSPI SSPIAuth On SSPIAuthoritative On SSPIDomain <domaincontroller> SSPIOfferBasic On # Htpasswd Logins. AuthType Basic AuthAuthoritative Off AuthUserFile passwd Require valid-user </Location>
3.1.9. 用SSL使服务器更安全
Apache服务器缺省并不支持SSL,这是因为美国的出口限制,但是你可以从其他地方下载安装。
首先,你需要一些文件来开启SSL,你可以在http://hunter.campbus.com/找到这些包,只需要解压缩这些文件,然后将mod_ssl.so拷贝到Apache的modules目录,将文件openssl.exe拷贝到bin目录,将文件conf/ssl.conf拷贝到Apache的conf目录。
使用文本编辑器打开Apache的conf目录的ssl.conf。
注释掉(使用#)下面几行:
DocumentRoot "c:/apache/htdocs" ServerName www.example.com:443 ServerAdmin you@example.com ErrorLog logs/error_log TransferLog logs/access_log
此行
SSLCertificateFile conf/ssl.crt/server.crt
改为
SSLCertificateFile conf/ssl/my-server.cert
此行
SSLCertificateKeyFile conf/ssl.key/server.key
改为
SSLCertificateKeyFile conf/ssl/my-server.key
此行
SSLMutex file:logs/ssl_mutex
改为
SSLMutex default
删除此行
<IfDefine SSL>
and
</IfDefine>
打开Apache配置文件(httpd.conf),并且去掉此行的注释
#LoadModule ssl_module modules/mod_ssl.so
Openssl需要一个配置文件,你可以从http://tud.at/programm/openssl.cnf下载一个正在使用的,请注意:*.cnf类型的文件尽管是普通的文本文件,Windows对这种文件会特别处理!
然后你需要创建一个SSL证书,为此打开一个命令行窗口,进入apache目录(例如C:\program files\apache group\apache2),然后输入下面的命令:
bin\openssl req -config bin\openssl.cnf -new -out my-server.csr
你会被讯问密语,请不要使用简单的单词,而是使用整段话,例如一段诗,越长越好。你也需要输入server的URL,其他所有问题都是可选的,但是我们建议你最好输入这些信息。
通常会自动产生