- 下载并解压缩Gitblit GO 1.8.0(Windows)或1.8.0(Linux / OSX)。
最好消除路径名中的空格。 - 服务器本身是通过简单的文本文件配置的。在您喜欢的文本编辑器中
打开data/gitblit.properties
,并确保查看和设置:- server.httpPort和server.httpsPort
- server.storePassword(不要输入#字符)强烈建议使用
https,因为密码是使用基本身份验证从浏览器/ git客户端不安全地传输的! - git.packedGitLimit(设置大于最大存储库的大小)
- 执行命令行
authority.cmd
或java -cp gitblit.jar com.gitblit.authority.Launcher --baseFolder data
从命令行执行
注意:权限是Swing GUI应用程序。不需要使用此工具,因为Gitblit GO将自动启动并创建SSL证书,但使用此工具可以控制生成的自签名证书中使用的标识元数据。跳过此步骤将导致具有默认元数据的证书。- 填写新证书默认值对话框中的字段
- 输入提示时输入server.storePassword中使用的商店密码。这将为localhost生成SSL证书。
- 您可能希望为要提供的主机名或IP地址主机名生成SSL证书
注意:您只能为端口指定一个 SSL证书。 - 退出权限应用程序
- 执行
gitblit.cmd
或java -jar gitblit.jar --baseFolder data
从命令行执行 - 根据您选择的配置,将浏览器打开到http:// localhost:8080或https:// localhost:8443。
- 输入默认管理员凭据:admin / admin并单击“ 登录”按钮
注意:确保更改管理员用户名和/或密码!
GO数据位置
默认情况下,Gitblit GO会将所有数据(用户,设置,存储库等)存储在data
GO安装的子文件夹中。您可以通过设置--baseFolder参数在命令行上为数据指定外部位置。如果重新定位数据文件夹,则必须向GO和证书颁发机构提供--baseFolder参数。
如果要将Gitblit部署到* nix平台,可以考虑将数据文件夹移出GO安装文件夹,然后创建一个名为“data”的符号链接,指向移动的文件夹。
通过GITBLIT_HOME指定baseFolder
您可以指定GITBLIT_HOME
为环境变量或-DGITBLIT_HOME
JVM系统属性。
包括其他属性
从1.7.0开始
Gitblit支持从多个属性文件加载它的设置。您可以使用include=filename
密钥来实现此目的。此设置支持使用逗号作为分隔符加载多个文件。它们按定义的顺序处理,它们可以嵌套(即包含的属性可能包括属性等)。
创建自己的自签名SSL证书
Gitblit GO(和Gitblit证书颁发机构)自动生成证书颁发机构(CA)证书和由此CA证书签署的ssl证书,该证书绑定到localhost。
远程Eclipse / EGit / JGit客户端(<3.0)将无法使用此证书进行通信,因为无论http.sslVerify = false客户端设置如何,JGit始终都会验证证书的主机名。
EGit失败消息类似于:
Cannot get remote repository refs.
Reason: https:/myserver.com/git/myrepo.git: cannot open git-upload-pack
如果要通过https将存储库提供给另一台计算机,则需要为要提供的主机名或IP地址生成新证书。
注意: Gitblit Authority是一个GUI工具,需要在无头UNIX机器上进行X11转发。
authority.cmd
要么java -jar authority.jar --baseFolder data
- 单击新的ssl证书按钮(窗口左上角工具栏中的红色花环)
- 输入主机名或IP地址
- 确保选中此证书的https复选框
- 在密钥库密码提示中,输入server.storePassword密码
如果您决定在启动Gitblit或Gitblit证书颁发机构后更改server.storePassword(推荐)的值,则必须删除以下文件,然后重新启动Gitblit证书颁发机构应用程序:
- 数据/ serverKeyStore.jks
- 数据/ serverTrustStore.jks
- 数据/证书/ caKeyStore.jks
- 数据/证书/ ca.crt
- data / certs / caRevocationList.crl(可选)
客户端SSL证书
从1.2.0开始
Gitblit支持X509证书身份验证。此身份验证方法依赖于您的servlet容器来验证/验证/信任您的客户端证书,并且可以由您的浏览器和您的git客户端使用。
所有X509证书都有一个专有名称(DN),它是几个字段的签名,如:
C=US,O=Gitblit,OU=Gitblit,CN=james
Gitblit必须能够将证书的DN映射到现有帐户用户名。默认映射是从DN中提取公用名(CN)值,并将其用作帐户名。如果CN是有效帐户,则对用户进行身份验证。运行Gitblit的servlet容器验证,验证和信任传递给Gitblit的证书。如果需要指定备用DN映射,可以使用git.certificateUsernameOIDs设置,但必须将此映射与用户帐户名匹配。
如何让servlet容器信任客户端证书?
在WAR变体中,您必须手动将servlet容器设置为:
- 想要/需要客户证书
- 信任用于签署客户端证书的CA证书
- 生成由CA证书签名的客户端证书
或者,Gitblit GO旨在促进客户端证书身份验证的使用。Gitblit GO附带了一个工具,可以简化客户证书的创建和管理,Gitblit证书颁发机构。
使用Gitblit证书颁发机构创建SSL证书
生成新的客户端证书时,会创建一个zip文件包,其中包含用于浏览器的P12密钥库和用于Git的PEM密钥库。这两个都受密码保护。此外,还生成了一个个性化的README文件,其中包含流行浏览器和Git的设置说明。README是data\certs\instructions.tmpl
根据您的需求生成的,可以进行修改。
authority.cmd
要么java -jar authority.jar --baseFolder data
- 选择要为其生成证书的用户
- 单击新证书按钮,然后输入证书的到期日期。您还必须输入生成的密钥库的密码。这个密码是不一样的用户的登录密码。此密码用于保护您将为所选用户生成的私钥和公共证书。您还必须为用户输入密码提示。
- 如果您的邮件服务器设置已正确配置,您将有一个发送电子邮件复选框,您可以使用该复选框立即将生成的证书包发送给用户。
证书检查和高级故障排除
即使使用简化的Gitblit证书颁发机构工具,X509证书也会令人困惑和棘手。如果您发现需要更多工具来了解密钥库,证书和证书吊销列表(CRL),我强烈推荐可以作为Java Web Start应用程序方便地启动的Portecle。
作为Windows服务运行
Gitblit使用Apache Commons Daemon来安装和配置其Windows服务。
- 查看内容的
installService.cmd
,你可能需要更改默认密钥库的密码。 - 根据安装的Java虚拟机设置ARCH值。
- 在命令行参数中添加下面列举的任何必要的--StartParams。
- 执行脚本。
服务安装后,您可以使用该gitblitw.exe
实用程序来控制和修改服务的运行时设置。此处记录
了gitblitw.exe
(prunmgr.exe)的其他服务定义选项和运行时功能。
注意:
如果从gitblit更改服务名称,则还必须更改名称gitblitw.exe
以匹配新服务名称,否则服务和实用程序之间的连接将丢失,至少双击执行。
VM注意事项
默认情况下,服务安装脚本将Windows服务配置为使用默认JVM。此设置通常默认为客户端VM。
如果已安装JDK,则可以考虑使用该gitblitw.exe
实用程序手动指定服务器 VM。
- 执行
gitblitw.exe
- 在Java选项卡上,取消选中Use default。
- 手动导航文件系统并使用
...
按钮指定服务器VMJava虚拟机: C:\ Program Files \ Java \ jre6 \ bin \ server \ jvm.dll
命令行参数
命令行参数会覆盖gitblit.properties
运行时的值。
--baseFolder The default base folder for all relative file reference settings
--repositoriesFolder Git Repositories Folder
--userService Authentication and Authorization Service (filename or fully qualified classname)
--httpPort HTTP port for to serve. (port <= 0 will disable this connector)
--httpsPort HTTPS port to serve. (port <= 0 will disable this connector)
--sshPort SSH Daemon port to serve. (port <= 0 will disable this daemon)
--gitPort Git Daemon port to serve. (port <= 0 will disable this daemon)
--alias Alias in keystore of SSL cert to use for https serving
--storePassword Password for SSL (https) keystore.
--shutdownPort Port for Shutdown Monitor to listen on. (port <= 0 will disable this monitor)
--dailyLogFile Redirect logging to a rolling, daily log file instead of stdout
--tempFolder Folder for server to extract built-in webapp
例
java -jar gitblit.jar --userService c:/myrealm.config --storePassword something --baseFolder c:/data
覆盖Gitblit GO的Log4j配置
您可以使用命令行参数将Gitblit GO的默认Log4j配置覆盖到JVM。
java -Dlog4j.configuration=file:///home/james/log4j.properties -jar gitblit.jar <optional_gitblit_args>
您不能使用覆盖默认的log4j配置并指定--dailyLogFile
参数。作为参考,这里是Gitblit的默认Log4j配置。它包括一些默认禁用的文件追加器。