zoukankan      html  css  js  c++  java
  • gitblit搭建git服务器

    如果你的公司使用git作为版本管理工具,那么对gitblit应该也不会陌生。gitblit是一个开源的git服务器java实现,一般情况下gitblit都是由别人已经搭建好你直接使用就行了,除非你就是那个搭建的人。在这呢,就来说说gitblit的搭建过程。
    一、下载gitblit
    下载地址:http://dl.bintray.com/gitblit/releases/gitblit-1.6.2.zip(以windows版为例),并将gitblit-1.6.2.zip解压
    二、重要参数
    以${baseFolder}代表gitblit根目录,在${baseFolder}data目录下有一个名为gitblit.properties的配置文件,用于配置gitblit

    [plain] view plain copy
     
    1. git.repositoriesFolder = ${baseFolder}/git      配置仓库目录,用于放置创建的仓库,默认路径为${baseFolder}/git  
    2. git.acceptedPushTransports = HTTP HTTPS SSH     可使用的传输协议,默认支持HTTP,HTTPS,SSH,还有另外一种为GIT  
    3. web.siteName = gitblit                          指定站点名称,此名称会作为网站页面标题显示  
    4. server.httpPort = 80                            HTTP协议端口,默认为0,表示禁用此协议,为了安全性起见可禁用此协议  
    5. server.httpsPort = 8443                         HTTPS协议端口,默认为8443,如果0,表示禁用此协议  
    6. server.certificateAlias = localhost             证书别名,该别名是一主机名,使用该别名后只能通过该主机名进行访问Web页面  
    7. server.storePassword = gitblit                  服务端KeyStore密码,该密码在生成服务器证书时需要使用  


    三、启动gitblit
    执行${baseFolder}gitblit.cmd脚本。

    四、创建用户
    服务器启动后,如果你没有禁用http协议,在浏览器中访问http://localhost/就能看到gitblit界面了。

    gitblit中有个管理员账号,用户名与密码都为admin,登录后进入用户管理界面添加一个用户,比如为用户名与密码都为:zhangsan,邮箱为:zhangsan@163.com。

    五、为用户分配权限
    当新创建一个用户后,其没有任何仓库的任何权限。进入某用户(zhangsan)的用户管理界面的访问权限选项卡,可为用户分配仓库权限。例如分配了test仓库的RW权限,这样该用户就可以对test仓库进行读写了,也就是拉取与推送。仓库的创建很简单,只需要输入一个仓库名称,就会在git.repositoriesFolder配置目录中创建该仓库。


    六、使用http协议克隆仓库
    使用http协议克隆仓库,本人使用的git客户端为TortoiseGit,在复制好仓库的http协议地址后直接克隆就好了,并不需要TortoiseGit配置任何参数,只是在每拉取时需要输出用户密码,推送也是如此。如果不想每次麻烦地输出密码则可以使用https协议。

    七、使用https协议访问Web界面
    从上面的配置可以知道,https端口为8443,访问https://localhost:8443,浏览器会弹出警告,提示该站点不安全。

    其原因是没有导入gitblit的根证书,根证书为${baseFolder}datacertsca.cer,将ca.cer导入浏览器,IE为导入受信任的根证书颁发机构,FireFox为证书机构。导入后刷新应该就能正常访问了。但你把访问地址更换为https://127.0.0.1:8443后,你会发现又提示不安全了,这与server.certificateAlias配置项有关,别名使用的是哪一个就只能通过相应主机名进行访问。例如你的gitblit服务是放置在内网的,IP地址为192.168.0.181,若想要通过https://127.0.0.1:8443访问的话就必须生成一个别名为192.168.0.181的服务器证书,并且将server.certificateAlias值配置为192.168.0.181,至于如何生成服务器证书,gitblit已经提供了界面,将在生成用户证书时一起作说明。

    八、生成用户与服务器证书
    1.生成用户证书:使用https之前需要为用户生成证书,执行${baseFolder}authority.cmd脚本,进入授权界面。

    选择用户zhangsan后创建证书,当后最好补全右侧的证书信息,此时会需要输出证书到期时间,存储该用户证书的KeyStore密码,确定后还需要输出gitlbit的KeyStore密码,该密码为server.storePassword配置项的值,默认为gitblit,再确定后创建用户证书成功,生成的证书路径为${baseFolder}datacertszhangsanzhangsan.zip。
    2.生成服务器证书
    点击主界面的创建服务器SSL证书图标,输入主机名与到期时间,确定后即可生成服务器证书,注意要想使用该主机名访问Web界面,必须将server.certificateAlias值配置为该主机名。

    九、使用https协议克隆仓库
    在使用http协议时,每次访问仓库都需要输入用户密码,使用https协议可以省去此麻烦而且还更安全。生成用户证书后将其拷贝下来,在该zip包中已经包含了用户的私钥与证书,但私钥存于后缀为pem的文件中,是经过Base64编码的,不是TortoiseGit客户端需要的形式。所以需要根据pem文件生成私钥,很简单,只需要执行:openssl rsa -in path/to/zhangsan.pem -out path/to/zhangsan.key命令就行了。openssl工具需要自行安装。接下来就可以配置TortoiseGit客户端了。进行TortoiseGit的配置界面,点击Edit global .gitconfig按钮进行配置,具体配置如下:
    [user]
        name = zhangsan
        email = zhangsan@163.com
    [http]
      sslVerify = false
      sslCert = path/to/zhangsan.pem
      sslKey = path/to/zhangsan.key
    保存后就可以通过https协议克隆仓库了,而且不再需要输入用户密码。

  • 相关阅读:
    nodejs + mongodb
    实习踩坑
    jQuery获取点击对象的父级
    python正则表达式
    python文件基础IO,OS
    python模块
    python时间和日期
    python number
    python循环
    Vue2.0 【第一季】第6节 v-model指令
  • 原文地址:https://www.cnblogs.com/qianqiu-1026/p/8710233.html
Copyright © 2011-2022 走看看