当前位置:  开发笔记 > 编程语言 > 正文

如何使用gitlab进行let的加密?

如何解决《如何使用gitlab进行let的加密?》经验,为你挑选了3个好方法。

当我偶然发现加密时,我开始查看ssl证书,并且我想将它与gitlab一起使用,但是它正在运行在树莓派2上并且它现在运行得非常完美(所以我不想弄乱任何东西) ),他会不会正确安装一个let encrypt ssl证书?PS:我的安装是综合的



1> rkallensee..:

我现在能够找到的迄今为止最好的解决方案在本博文中有所描述.我不会背诵任何内容,但关键点是:

使用webroot身份验证器进行Let's Encrypt

创建文件夹/var/www/letsencrypt并使用此目录和webroot-pathLet的加密

更改以下配置值/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_urlhttps://...并再次运行gitlab-ctl reconfigure

这种方法非常优雅,因为它只是/var/www/letsencrypt/.well-known通过自定义Nginx配置将Let的加密验证器使用的目录安装到Gitlab web-root中,并且在Gitlab运行时始终可以进行身份​​验证.这意味着您可以自动续订Let的加密证书.


@ MikeH-R好问题 - 我会说`gitlab-ctl reconfigure`不是必需的,因为配置本身不会改变,但是要让nginx(可能还有其他组件)拿起新证书``gitlab-ctl restart `应该完成.可能``gitlab-ctl restart nginx`就足够了.

2> Hay..:

我不知道Raspberry Pi上的安装是否有所不同.让加密安装过程做一些我不知道的魔术.

准备Gitlab

输入grep 'external_url' /etc/gitlab/gitlab.rb以检查网站名称.作为一个例子的https:// gitlab.example.com:50000

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

粗体部分将是您的

生成证书

按照此链接上的Let's Encrypt安装说明操作:https://letsencrypt.org/howitworks/

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

生成Let的加密证书后,它们就位于 /etc/letsencrypt/live//

复制证书

Gitlab预计会有两个文件 /etc/gitlab/ssl/

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

将证书复制/etc/letsencrypt/live//cert.pem/etc/gitlab/ssl/.crt

将私钥复制/etc/letsencrypt/live//privkey.pem/etc/gitlab/ssl/.key

重新配置

gitlab-ctl reconfigure



3> jonashackt..:

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

    如果您有一个可从外部访问的服务器(意味着您的Gitlab主机可以从Let's Encrypt服务器调用,这是Let's Encrypt的自动机制,验证您"拥有"某个域,如gitlab.yoursite.com相应的DNS和DNS解析的服务器/主机)所需要的唯一的事情(从Gitlab版本10.7上)是一个加小号HTTP你Gitlab URL配置/etc/gitlab/gitlab.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主机不能通过Let's Encrypt服务器从外部访问,那么整个过程就更难了!然后你会离开让Gitlab Omnibus为你做繁重的自动方式.你现在肯定需要自己获取Let's加密证书!有一些方法可以在不需要外部访问服务器的情况下获取通过加密证书.

    我选择并建议使用的另一种方法是使用与dns-lexicon一起脱水的备用Let's Encrypt客户端,与2016年在某处引入的Let's Encrypt一起完全自动化获取证书的过程.这是唯一的方法,你不需要一个外部可访问的服务器 - 但你再次需要"拥有"某个域,如AND和你需要API访问DNS提供商,DNS提供商托管你的域(这里是支持的DNS提供商列表在那种情况下).dns-challengegitlab.yoursite.com

    由于整个过程非常复杂,我创建了一个完全易于理解的Ansible playbook prepare-gitlab.yml,其中Gitlab安装Omnibus的每一步都是为你处理的(完整的GitHub源代码可以在这里找到:https://github.com/jonashackt/ gitlab-ci-stack).

    如果您只想创建EUROP加密证书,请查看gets-letsencrypt-certs-dehydrated-lexicon.yml - 即使您不想使用Ansible,也可以手动重现控制台上的每一步或使用其他自动化工具,如Chef或Saltstack(虽然我不能亲自推荐).另一种方法是从词典中查看这个伟大的博客文章:https://blog.thesparktree.com/generating-intranet-and-private-network-ssl,从我基本上开发的剧本中描述的步骤开始.

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

    /srv/dehydrated/certs/{{ gitlab_domain }}/fullchain.pem

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

    /srv/dehydrated/certs/{{ gitlab_domain }}/privkey.pem

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

    Gitlab会自动为您提取它们,因为文档说明了手动配置HTTPS的方式

推荐阅读
135369一生真爱_890
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有