windows下配置svn的https访问
svn是一个功能强大的代码版本管理系统,可以将服务端安装在linux、unix以及windows下。svn通常采用http方式进行代码提交与下载。由于密码采用明文传输,因此存在泄密的风险。若采用https协议加密,则可大大提高安全性能。
在windows下配置基于apache的svn,带openssl0.9.8。可通过http或者https访问,或者只能通过https访问。部分资料从网上摘录,经过本人测试后,对部分内容进行了补充。
一、下载和安装
(一)下载
1、下载apache,在此我下载的是apache-2.2.11-win32-x86-openssl-0.9.8,该版本的apache自带了openssl。(2013年11月最新版已经更新到2.4.6)
2、下载subversion,在此配置文档里我用的是1.6.4。可在官网上下载。
(二)安装
安装apache和subversion;
注:如果安装完apache之后出了no services installed的情况,请在cmd里进入到apache的bin目录,然后运行httpd.exe -k install -n apache2 即可。apache2根据自己apache的版本改变。
二、建配置库及用户名。
1、建配置库
在cmd命令里进入subversion的bin目录,然后输入
svnadmin create d:\svn\test
注:上层目录d:\svn\test必须存在。即在d盘下建svn\test文件夹。
运行此命令即建好一个库。打开之后可看到test空文件中多了下图所示的那些文件。
2、建用户名。
将apache设为环境变量,然后在cmd命令里进入apache\bin目录,执行以下命令即可。
初次建用户名:htpasswd -c [验证文件名] username
username对应我们的用户名,然后输入密码即可。
增加用户名:htpasswd -m [验证文件名] username
删除用户: htpasswd -D passwd username 注:此处必须用大写的D。
三、配置过程
在此为止,我们已经将客户端及服务器端的软件都安装好了,接下来就是配置过程了。
(一)配置可以通过http访问
1、打开subversion的bin目录,将下图所示的三个文件复制到apache的modules目录下。(因为apache本身不包含dav_svn.so和authz_svn.so模块。
注:如果apache的版本不是2.2.11,libdb44.dll的名字可能就是libdb**.dll。
2、因为apache和subversion的版本不对应,所以应将subversion的bin目录中的所有的dll文件复制到apache的bin目录里,在复制的过程中,要让apache停止。
3、打开apache的conf目录里的httpd.conf文件进行修改。
(1)在LoadModule部分,首先将以下两行前面的#去掉。
#LoadModule dav_module modules/mod_dav.so
#LoadModule dav_fs_module modules/mod_dav_fs.so
(2) 在LoadModule部分添加以下两句,因为我们前面只是将subversion中的dav_svn.so和authz_svn.so模块复制到apache的modules目录下,但是apache启动后并不会加载它,所以我们添加以下两句,以便让apache会加载这两个模块。
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
(3)在httpd.conf文件的最后添加以下内容
<Location /repos>
DAV svn
SVNParentPath "d:\svn" # 库的路径。
SVNListParentPath on # 查看所有的库(即库列表)
AuthType Basic
#SSLRequireSSL #限制项目仓库只能通过https的形式进行访问,若只采用https访问,则去掉#
AuthName "svn repos"
AuthUserFile "D:\svn\passwd" #用户名及密码的存放路径,据自己的情况写。
AuthzSVNAccessFile "D:\svn\svnaccessfile" #权限文件的存放路 径,据自己的情况写。
Require valid-user
</Location>
到此为止通过http访问的所有的配置都已经完成。给用户权限即可通过http://ip:port/repos/test进行访问。
注: (1)ip:服务器的IP。
port:安装apache时我们选择的端口。
repos:location后面的部分,根据自己的实际情况填写。
test:库的名称。
(2)在配置文件httpd.conf中添加内容时一定要注意在英文状态下输 入,否则会导致apache启动不了;另外上面#及#后内容一定要去掉。
(二)通过https访问或者只能通过https访问
打开apache的conf目录里的httpd.conf文件进行修改。
1、将以下三行的注释去掉,即去掉#。
#LoadModule authnz_ldap_module modules/mod_authnz_ldap.so
#LoadModule ldap_module modules/mod_ldap.so
#LoadModule ssl_module modules/mod_ssl.so
#注:系统缺少文件mod_ssl.so,需要从网上下载并复制到modules目录,否则无法启动apache服务 下载mod_ssl.so
2、将以下行前面的注释去掉
#Include conf/extra/httpd-ssl.conf
改为Include conf/extra/httpd-ssl.conf
3、如果希望只通过https访问,则应该前面Location部分的#SSLRequireSSL前面的#去掉。没有去掉的话是https和http形式都可以访问。
4、申请证书
在cmd命令进入到apache的conf目录,执行以下命令。
openssl genrsa -out server.key 1024 #生成密钥
openssl req -new -key server.key -out server.csr -config .\openssl.cnf #生成server.csr,此处需要从互联网下载openssl.conf文件,改名为openssl.cnf
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt #生成证书
生成证书时365是证书的有效期,可根据自己的情况进行填写。以上命令执行完之后会生成server.key ,server.csr,server.crt三个文件。
四、分配权限
在此文档我将权限文件命名为svnaccessfile,在其中添加权限内容。
内容如下:
[groups]
admin = username
dev =
...... #对应我们所需要的组。
[/] #设置哪些组或用户可以查看库目录(所有的库的一个列表)
@admin=r
[test:/] #给库设置访问权限。
@admin =rw
@dev=r
[test:/xx/xx] #继续细分库的权限。
@admin = rw
到此为止,所有的配置都已经完成,我们可以通过客户端进行日常工作了。
windows下配置svn的https访问的更多相关文章
- WINDOWS下配置SVN代码管理
服务器端使用 visualsvn server,客户端使用tortoiseSvn. 一.服务器端 1.首先,下载visualsvn server,安装到服务器.下载地址: http://www.vis ...
- 在Windows下配置svn服务端钩子程序(部分)
需求一,svn提交时必须填写log日志的需求,如何进行配置呢?请看下面. 需要在版本库目录下找到hooks文件夹,我的版本库是dxoffice,所以是这个目录,你要找自己的目录 然后进入,创建一个pr ...
- Windows下配置SVN服务器
2013-09-03 21:40:34 1. 下载安装svn软件 1.1 服务端svn 下载地址:http://subversion.apache.org/packages.html 默认安装路径:D ...
- https----------如何在phpstudy环境下配置apache的https访问以及访问http自动跳转成https
1.首先在 httpd.conf里面修改几个地方 找到 #LoadModule ssl_module modules/mod_ssl.so 去掉前面的# Include conf/vhosts.con ...
- Windows 下配置 Apache 支持 https
1.打开cmd ,输入 F: // 切换到Apache安装路径,我的Apache安装目录在 F盘 2.cd F:\Apache\bin 3.set "openssl_conf = F:\A ...
- 在Windows下配置svn服务端钩子程序
需求一,svn提交时必须填写log日志的需求 @echo off :: :: Stops commits that have empty log messages. :: @echo off set ...
- Windows下Nginx配置SSL实现Https访问(包含证书生成)
Vincent.李 Windows下Nginx配置SSL实现Https访问(包含证书生成) Windows下Nginx配置SSL实现Https访问(包含证书生成) 首先要说明为什么要实现https ...
- windows下配置ssh访问github
一.说明 一直使用HTTPS的方式访问github的代码,用的时间长了,发现这是效率很低的一种开发行为,因为每次git push的时候都要输入username和password.今天就介绍如何在win ...
- [源码管理] Windows下搭建SVN服务器
前文所述SVN客户端使用的时候,用的SVN服务器通常为外部,例如Google Code的服务器,不过,做为一个程序开发人员,就算自己一个人写程序,也应该有一个SVN版本控制系统,以便对开发代码进行有效 ...
随机推荐
- Java protobuf框架使用向导
ProtoBuf,全称是Protocol Buffers, 它是谷歌内部用的一种高效的.可扩展的对结构化数据进行编码的格式规范.谷歌自己内部很多程序之间的通信协议都用了ProtoBuf. 下面介绍的是 ...
- 作业:汽车查询--弹窗显示详情,批量删除 php做法(0521)
作业:显示以下界面: 作业要求: 1.查看详细信息,以弹窗的形式显示,使用ajax2.批量删除 一.主页面: <!DOCTYPE html PUBLIC "-//W3C//DTD XH ...
- python学习第十一天 -- 函数式编程
在介绍函数式编程之前,先介绍几个概念性的东西. 什么是函数式编程? 函数式编程的特点: 1.把计算视为函数而非指令; 2.纯函数式编程:不需要变量,没有副作用,测试简单; 3.支持高阶函数,代码简洁. ...
- Harris Corner(Harris角检测)
在做图像匹配时,常需要对两幅图像中的特征点进行匹配.为了保证匹配的准确性,所选择的特征必须有其独特性,角点可以作为一种不错的特征. 那么为什么角点有其独特性呢?角点往往是两条边缘的交点,它是两条边缘方 ...
- 需要熟悉的几个调试命令:objdump/pmap/ldd/stace
最近要编译很多库,还涉及到若干进程操作,所以就把相关的命令记录下来. 一,objdump命令 该命令适用于ELF可执行文件,常用的命令如下: objdump -h xx.o : 输出ELF文件的各个段 ...
- 当开始输入文字以及完成文字输入时,变换text field的背景以及系统自带一键删除的 叉叉
当开始输入文字以及完成文字输入时,变换text field的背景. -(BOOL) textFieldShouldBeginEditing:(UITextField *)textField{ [tex ...
- PhoneGap and Titanium
http://mobile.51cto.com/web-338270.htm http://www.udpwork.com/item/6117.html http://blog.cnbang.net/ ...
- TEncoding & TNetEncoding(使用现成的TBase64Encoding,TEncoding和TMBCSEncoding)
TEncoding and TNetEncoding are abstract classes and you will never instantiate one of them, because ...
- Activity生命周期,状态保存恢复(经典)
一.整体框架 二.main.xml <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android&qu ...
- NoMachine 远程桌面控制
它是一个基于企业级对比套装的开源的终端服务器.它允许用户在连接速度缓慢或者窄带宽的情况下,对X11会话进行远程访问. NX项目提供一整套的运行库文件以及优化的来自X11,SMB,IPP,HTTP及其网 ...