linux下apache+svn+ssl的环境搭建(申请免费的SSL证书)

6 篇文章 0 订阅
1 篇文章 0 订阅

1.安装apache2和svn server

$sudo apt-get install apache2

$sudo apt-get install subversion

$sudo apt-get install libapache2-svn


2.创建版本库

$sudo mkdir /data/svn

$sudo svnadmin create /data/svn/repos


3.添加项目

假设在/tmp目录下有demo目录,demo目录下的目录结构如下

demo
   branches
   tags
   trunk

然后,用 svn import 命令来进行项目的导入:

$ svn import /tmp/ file:///data/svn/repos/ -m “init”


4.与Apache结合

<Location />
    DAV svn
    SVNPath /data/svn/repos
</Location>

5.通过用户名和密码来访问

$sudo htpasswd -c /data/svn/passwd username

第一次创建用户,需要通过参数-c,然后第二次创建用户就不需要

<Location />
    DAV svn
    SVNPath /data/svn/repos
    AuthType Basic
    AuthName "svn repos"
    AuthUserFile /data/svn/passwd
    Require valid-user
</Location>

6.目录访问控制

<Location />
    DAV svn
    SVNPath /data/svn/repos
    AuthType Basic
    AuthName "svn repos"
    AuthUserFile /data/svn/passwd
    AuthzSVNAccessFile /data/svn/authz
    Require valid-user
</Location>

/data/svn/authz如下所示

#两个分组:committers,developers
[groups] 
committers = paulex richard
developers = jimmy michel spark sean \ 
           steven tony robert
#在根目录下指定所有的用户有读权限
[/] 
* = r 
#追加 committers 组用户有读写权限
@committers = rw 
#在 branches/dev 目录下指定 developers 组的用户有读写权限
[/branches/dev] 
@developers = rw 
#在 /tags 目录下给予用户 tony 读写权限    
[/tags] 
tony = rw 
#禁止所有用户访问 /private 目录
[/private] 
* = 
#给 committers 组用户读权限
@committers= r

7.用SSL实现安全的网络传输

$cd /tmp

$sudo openssl genrsa -des3 -out my-server.key 1024

$sudo openssl req -new -key my-server.key -x509 -out my-server.crt -config /etc/ssl/openssl.cnf

$mkdir /etc/apache2/ssl

$cd /etc/apache2/ssl

将 my-server.key 和 my-server.crt 文件都移动到 ssl 目录里面

$sudo a2enmod ssl

如果要限定版本库只能用 https 访问,我们可以在 Apache 配置文件当中 Subversion 部分加上”SSLRequireSSL”。

最终的虚拟主机配置文件如下:

NameVirtualHost *:443
<VirtualHost *:443>
        ServerName svn.shen.com
        ServerAdmin shen@qq.com
        SSLEngine On
        SSLCertificateFile /etc/apache2/ssl/my-server.crt
        SSLCertificateKeyFile /etc/apache2/ssl/my-server.key
 
        ErrorLog ${APACHE_LOG_DIR}/svn_shen_error.log
        CustomLog ${APACHE_LOG_DIR}/svn_shen_access.log combined
 
        <Location />
            DAV svn
            SVNPath /data/svn/repos
            AuthType Basic
            AuthName "svn repos"
            AuthUserFile /data/svn/passwd
            AuthzSVNAccessFile /data/svn/authz
            SSLRequireSSL
            Require valid-user
        </Location>     
</VirtualHost>

8.向StartSSL申请免费的SSL证书

自行颁发的SSL证书不受浏览器和TortoiseSVN的信任,可以去startssl.com申请证书,然后把

/etc/apache2/ssl/my-server.crt和/etc/apache2/ssl/my-server.key都替换掉。


9.解决安装SSL后,启动apache要输入密码的问题

$sudo vi /etc/apache2/mods-available/ssl.conf

注释掉SSLPassPhraseDialog builtin,

在下一行加上SSLPassPhraseDialog exec:/etc/apache2/ssl/ssl_pass.sh

在/etc/apache2/ssl目录下新建ssl_pass.sh(ssl也是自己建的)

$vi /etc/apache2/ssl/ssl_pass.sh

输入

#!/bin/sh

$echo “你的ssl证书密码”

$sudo chmod +x /etc/apache2/ssl/ssl_pass.sh

$sudo service apache2 restart

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值