当前位置: 首页 > 知识库问答 >
问题:

如何使用gitlab加密?

谯乐池
2023-03-14

当我偶然发现let's加密时,我开始查看ssl证书,我想将其与gitlab一起使用,但是由于它在树莓pi 2上运行,并且现在运行得非常完美(所以我不想搞砸任何事情),他会让我正确安装let加密ssl证书吗?PS:我的安装是综合的。

共有3个答案

印劲
2023-03-14

我不知道树莓派上的安装是否不同。让我们加密安装过程做一些我不知道的魔术。

键入grep“external_url”/etc/gitlab/gitlab。rb检查网站名称。作为一个例子https://gitlab.example.com:50000

如果您的外部网址不以 https 开头,请将其更改为以 https 开头

粗体部分将是您的

按照此链接上的“让我们加密”安装说明进行操作:https://letsencrypt.org/howitworks/

我没有复制说明,因为它们可能会更改(因为该程序现在处于开放测试阶段)。您必须运行的内容取决于您是否还有在Apache上运行的网站,您想要为其生成“让我们加密证书”。

一旦您生成了“让我们加密”证书,它们就位于/etc/letsencrypt/live/

吉特实验室需要两个文件位于 /etc/gitlab/ssl/

有些事情我不确定,您可能需要使用此位置的答案转换.pem证书:将.pem转换为.crt并.key

/etc/letsencrypt/live复制证书/

/etc/letscrypt/live/复制私钥

运行gitlab-ctl重新配置

黄无尘
2023-03-14
匿名用户

根据您的基础架构设置,有2种方法(Raspi、大型云服务器或介于两者之间的东西):

>

  • 如果您有一个外部可访问的服务器(意味着您的Gitlab主机可以从Let’s Encrypt服务器调用,Let’s Encrypt's自动机制需要该服务器来验证您“拥有”某个域,如Gitlab.yoursite.com和相应的DNS解析服务器/主机),唯一需要的事情(从Gitlab 10.7版开始)是在您的/etc/Gitlab/Gitlab中的Gitlab URL配置。rb(正如marcolz已经提到的):

    external_url'https://gitlab.yoursite.com'

    从 https://docs.gitlab.com/omnibus/settings/ssl.html#let-39-s-encrypt-integration 中的文档:

    Omnibus-gitlab可以从Let's Encrypt为您自动获取和更新证书。

    如果您的Gitlab主机无法通过“让我们加密”服务器进行外部访问,则整个过程将更加困难!然后,您将离开让Gitlab综合总线为您完成繁重工作的良好自动方式。您现在肯定需要自己获取“让我们加密”证书!有一些方法可以获取Let's加密证书,而无需外部可访问的服务器。

    我选择并推荐的方法是使用替代方法Let s Encrypt client dehydrated和dns-lexicon来完全自动化获取证书的过程,以及Let s Encrypt < code > DNS-challenge ,这是在2016年推出的。这是唯一的方法,在这种情况下,您不需要外部可访问的服务器,但您仍然需要“拥有”某个域,如< code>gitlab.yoursite.com,并且您需要对托管您的域的DNS提供商进行API访问(在这种情况下,这里列出了受支持的DNS提供商)。

    由于整个过程相当复杂,我创建了一个完全可理解的剧本prepare-gitlab.yml,其中gitlab安装Omnibus的每一步都是为您处理的(完整的GitHub源代码可从这里获得:https://GitHub . com/Jonas hackt/git lab-ci-stack)。

    如果您只想创建Let's Encrypt证书,请查看obtain-letsencrypt-certs-dehydrated-lexicon.yml-即使您不想使用Anable,您也可以手动复制控制台上的每一步,或者使用其他自动化工具,如Chef或Saltack(尽管我个人不推荐这样做)。另一种方法是查看词典人员的这篇很棒的博客文章:https://blog.thesparktree.com/generating-intranet-and-private-network-ssl,从那些描述的步骤中,我基本上是从这些步骤中开发剧本的。

    无论您选择哪种方式,都不要忘记复制手动(或自动)获取的Let’s Encrypt证书

    /srv/脱水/certs/{gitlab_domain}}/fullchain.pem

    /etc/gitlab/ssl/{{gitlab_domain}}. crt

    /srv/脱水/certs/{{gitlab_domain}}/privkey.pem

    < code >/etc/git lab/SSL/{ { git lab _ domain } }键

    Gitlab会从那里自动为你获取它们,正如文档中所说的手动配置HTTPS

  • 翁钧
    2023-03-14

    到目前为止,我能找到的最好的解决方案在这篇博客文章中有所描述。我不会背诵所有内容,但要点是:

    >

  • 使用“Let’s Encrypt”的webroot验证器
  • 创建文件夹/var/www/letsencrypt,并将此目录用作Let’s Encrypt的webroot路径
  • /etc/gitlab/gitlab中更改以下配置值。rb,然后运行gitlab ctl reconfigure:

    nginx['redirect_http_to_https'] = true
    nginx['ssl_certificate']= "/etc/letsencrypt/live/gitlab.yourdomain.com/fullchain.pem"
    nginx['ssl_certificate_key'] = "/etc/letsencrypt/live/gitlab.yourdomain.com/privkey.pem"
    nginx['custom_gitlab_server_config']="location ^~ /.well-known {\n alias /var/www/letsencrypt/.well-known;\n}\n"
    

    如果您使用的是与Omnibus软件包一起提供的Mattermost,则可以在/etc/gitlab/gitlab.rb中额外设置这些选项:

    mattermost_nginx['redirect_http_to_https'] = true
    mattermost_nginx['ssl_certificate']= "/etc/letsencrypt/live/gitlab.yourdomain.com/fullchain.pem"
    mattermost_nginx['ssl_certificate_key'] = "/etc/letsencrypt/live/gitlab.yourdomain.com/privkey.pem"
    mattermost_nginx['custom_gitlab_mattermost_server_config']="location ^~ /.well-known {\n alias /var/www/letsencrypt/.well-known;\n}\n"
    

    请求第一个证书后,请记住将external_url更改为 https://...,然后再次运行gitlab-ctl重新配置

    这种方法非常优雅,因为它只是通过自定义Nginx配置将Let's Encrypt身份验证器使用的目录/var/www/letscrypt/. well挂载到Gitlab web-root中,并且在Gitlab运行时始终可以进行身份验证。这意味着您可以自动更新Let's Encrypt证书。

  •  类似资料:
    • 我有一个ASP.NET MVC应用程序。我试图使用Gitlab和Cake.net实现CI和CD。 Build.Cake build.ps1(类似.NET默认文件)

    • 我在CentOs上的上设置了一个新的Gitlab,并在continuous-delivery组下创建了一个新的存储库。完整路径为。此路径下只有一个文件,即readme.txt。 我试图实现的是当有人将更改推送到服务器时创建一个新文件。下面是我在服务器上做的事情: 在echo“text”>>file_name`创建一个新文件 chmod它们为775。 当我将更改从本地推送到服务器时,不会创建任何文件

    • 不久前,我能够使用与。我目前正在使用一家公司,我不想添加到gitlab的ssh键,所以我试图使用https来拉和推gitlab.com但似乎我一直得到500个错误。 我记得我必须为此添加一些令牌,但我不记得如何在gitlab中使用https,而且似乎没有相关文档。

    • 问题内容: 情况: 服务器-答:我们在容器中运行Gitlab。 服务器B:我们有Kubernetes。 Gitlab使用Kubernetes运行程序。然后,我们的一些项目使用带有Git和Maven的docker容器构建应用程序。 Maven总是必须将各种东西下载到它的/root/.m2缓存中。我需要做的是创建一个可以供这些作业使用的持久卷,因此,一旦下载了该卷,就不必在每次有人要构建或测试某些东西

    • 1. 介绍 在以前的一篇文章我们介绍过如何用docker来部署gitlab应用:使用 compose 部署 GitLab 应用 (八) 还有一篇文章是介绍用acme.sh给网站加上https的:使用 acme.sh 安装 Let’ s Encrypt 提供的免费 SSL 证书 现在这篇文章来结合之前的两篇文章的内容,给gitlab网站加上https应用的。 2. 申请证书 第一步是申请证书: $

    • 主要内容:Git命令Git命令用于与其他开发人员轻松共享和组合代码。 Git命令 以下是一些基本Git命令: 可以使用以下命令来检查Git的版本: 在提交信息时添加Git用户名和电子邮件地址以标识作者。 使用以下命令设置用户名: 输入用户名后,使用以下命令验证输入的用户名: 接下来,使用以下命令设置电子邮件地址: 可以验证输入的电子邮件地址: 使用以下命令检查输入的信息: 可以使用以下命令来获取对主分支所做的最新更改