现在的位置: 首页 > 综合 > 正文

windows 安装 配置svn 1.70 + ldap 及 配置ssl 支持

2013年06月01日 ⁄ 综合 ⁄ 共 4160字 ⁄ 字号 评论关闭

下载svn 最新服务器端:http://sourceforge.net/projects/win32svn/

下载svn 最新客户端:http://tortoisesvn.net/downloads.html 或http://sourceforge.net/projects/tortoisesvn/

svn服务封装工具:http://download.csdn.net/detail/nicaiwa/3751587

sourceforge 没有官网的更新快,所以最好还是下载http://tortoisesvn.net/downloads.html 的最新版本。

下载完后进行安装。

安装以后,建立svn库,示例以C:\svn\repository 为svn总库,测试用svn命令建立svn库:svnadmin create c:\svn\repository\test

将svnservice.exe放在subversion的bin目录下,执行:SVNService -install -d -r C:\svn\repository

显示:
SVNService installed.
Commandline set: "-d" "-r" "C:\svn\repository"

就说明服务安装成功了,然后开始=》运行》services.msc 或者 win+r services.msc

找到SVNService ,改为自动并启动。

然后用svn客户端:访问svn://localhost/test ,如果访问没有报错说明配置成功。

//以上黄色部分,如果不会svn协议和对每个库下的passwd,authz单独进行配置,请不要进行设置,否则会造成,使用svn协议可以访问任意内容的漏洞

顺便在C:\svn\repository 建立一个权限控制文件authz,文件内容:

[test:/]
zero=rw

 

在Subersion的bin下面找到:

mod_authz_svn.so
mod_dav_svn.so

然后拷贝到:C:\Program Files\Apache Software Foundation\Apache2.2\modules(apache的modules文件夹下)

再cmd到Apache的bin目录:

C:\Program Files\Apache Software Foundation\Apache2.2\bin>htpasswd.exe -cb htpasswd
zero zero
Adding password for user zero

C:\Program Files\Apache Software Foundation\Apache2.2\bin>htpasswd.exe -b htpasswd n
icaiwa zero
Adding password for user nicaiwa

这样就在C:\Program Files\Apache Software Foundation\Apache2.2\bin下建立了两个用户的配置文件htpasswd,将htpasswd拷贝到C:/svn/repository/

然后修改apache 的配置文件httpd.conf

找到dav_module去掉注释#

并在该行后加上:

LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so

在配置文件最后加上:

<Location /svn>
DAV svn
SVNParentPath C:/svn/repository  #SVNParentPath为多库,SVNPath为单库
SVNListParentPath On
AuthzSVNAccessFile C:/svn/repository/authz

AuthType Basic
AuthName "Subversion repositories test"
AuthUserFile  C:/svn/repository/htpasswd
Require valid-user
</Location>

配置好后,重启apache 服务,apache的状态栏有svn和dav就说明配置成功了,下面测试访问:http://localhost/svn/

输入账号密码,看到test就说明你配置成功了。

 

由于我们公司使用的ldap 认证,不需要user文件,下面再解释一下配置ldap认证:

首先启动ldap:

LoadModule authnz_ldap_module modules/mod_authnz_ldap.so

LoadModule ldap_module modules/mod_ldap.so

将:

AuthType Basic
AuthName "Subversion repositories test"
AuthUserFile  C:/svn/repository/htpasswd
Require valid-user

替换为:

AuthType Basic
AuthName "myproject subversion repository"
AuthBasicProvider ldap
AuthzLDAPAuthoritative on
AuthLDAPURL "
ldap://ldap服务器ip:389/DC=sc-forward,DC=cn?sAMAccountName?sub?(objectClass=*)" NONE
AuthLDAPBindDN "CN=用户名,CN=Users,DC=sc-forward,DC=cn"
AuthLDAPBindPassword "密码"
Require valid-user

将ldap服务器ip,用户名,密码替换为你相应的数据。

配置好后重启apache服务。

再测试登陆:http://localhost/svn/test 访问成功。

如果389不行的话试试换为3268,曾经在linux配置遇到过这个问题。

 

**********************************

配置ssl 参考了http://bbs.iusesvn.com/thread-158-1-1.html

**********************************

1.首先在apache 配置文件中开启ssl支持

LoadModule ssl_module modules/mod_ssl.so 去掉#

Include conf/extra/httpd-ssl.conf 去掉#

2.生成证书

有两种方式:1.自己手动输入命令,2.用批处理输入相关参数(下载地址:http://download.csdn.net/detail/nicaiwa/3832529)

2.1 下载openssl(下载地址:openssl.cnf)

  • 下载保存到bin目录
  • 我安装的是带ssl的apache,所以bin目录已经有openssl.exe,如果没有的可以使用第二种方法,或自己下载openssl
  • cmd到apache的bin目录
  • openssl req -config openssl.cnf -new -out server.csr
  • openssl rsa -in privkey.pem -out server.key
  • openssl x509 -in server.csr -out server.crt -req -signkey server.key -days 4000
  • openssl x509 -in server.crt -out server.der.crt -outform DER

执行完以上命令后将产生server.csr、my-server.der.crt、privkey.pem、server.crt、server.key,将server.key和server.crt 拷贝到conf目录下。

然后修改 conf/extra/httpd-ssl.conf

将下列行全部用# 注释掉

DocumentRoot "C:/Program Files/Apache Software Foundation/Apache2.2/htdocs"
ServerName
www.nicaiwa.com:443
ServerAdmin nicaiwa@nicaiwa.com
ErrorLog "C:/Program Files/Apache Software Foundation/Apache2.2/logs/error.log"
TransferLog "C:/Program Files/Apache Software Foundation/Apache2.2/logs/access.log"

 

然后重启apache,试试访问https://localhost/svn/test,看能否正常访问。

如果想只允许https访问的话,apache配置文件加上

<Location /svn>
DAV svn
SSLRequireSSL
SVNParentPath C:/svn/repository
SVNListParentPath On
AuthzSVNAccessFile C:/svn/repository/authz

AuthType Basic
AuthName "Subversion repositories test"
AuthUserFile  C:/svn/repository/htpasswd
Require valid-user
</Location>

 

上面拷贝server.key和server.crt 到conf是不怎么好的,主要是为了不修改配置文件,比较好的做法是,在conf下建立一个ssl

文件夹,将生成的5个文件拷贝到ssl文件夹内,然后将conf/extra/httpd-ssl.conf 修改

SSLCertificateFile "C:/Program Files/Apache Software Foundation/Apache2.2/conf/ssl/server.crt"

SSLCertificateKeyFile "C:/Program Files/Apache Software Foundation/Apache2.2/conf/ssl/server.key"

然后重启apache,试试访问https://localhost/svn/test,看能否正常访问。

 

 

抱歉!评论已关闭.