使用HTTPS配置gitlab omnibus,无需在AWS上使用nginx证书

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用HTTPS配置gitlab omnibus,无需在AWS上使用nginx证书相关的知识,希望对你有一定的参考价值。

我在配置gitlab服务器时遇到问题。我希望它的外部URL在HTTPS中,但我希望nginx能够像为HTTP配置一样工作。

我的Gitlab服务器安装在AWS EC2上,后面有一个ELB(负载均衡器)。 ELB处理HTTPS内容(使用和ACM),因此gitlab实例在HTTP上提供:

WEB =>(HTTPS)=> [ELB] =>(HTTP)=> [EC2]

目前,gitlab配置了external_url 'http://gitlab.*****',它适用于基本的东西,但是对于CI输出跟踪,例如,gitlab尝试使用HTTP url获取它,然后出现错误:

混合内容:'https://gitlab。***** / [owner] / [project] / - / jobs / 44'页面是通过HTTPS加载的,但请求了一个不安全的XMLHttpRequest端点'http://gitlab。***** / [所有者] / [项目] / - /作业/ 44 / - /作业/ 44 / trace.json状态=”。此请求已被阻止;内容必须通过HTTPS提供。

知道如何配置这个吗?

答案

对我有用的是ACM,ELB,GitLab Docker容器的组合(但安装在-EC2实例上无关紧要)和本文:

https://codyparker.com/force-entire-site-ssl-nginx-behind-aws-load-balancer/

这给了我需要的提示。我必须做的是:

  1. 创建我的Route 53 DNS名称
  2. 根据我的新DNS名称创建我的ACM证书
  3. 使用我的GitLab EC2实例创建我的应用程序ELB,目标组是具有端口80的EC2实例。
  4. 注意到gitlab关于转发SSL端口的文档:https://docs.gitlab.com/omnibus/settings/nginx.html#supporting-proxied-ssl
  5. 在我的gitlab docker容器(omnibus gitlab)中添加:
environment:
      GITLAB_OMNIBUS_CONFIG: |
        external_url "https://example.com"
        nginx['listen_port'] = 80
        nginx['listen_https'] = false
        nginx['redirect_http_to_https'] = true
        nginx['proxy_set_headers'] = {
          "X-Forwarded-Proto" => "https",
          "X-Forwarded-Ssl" => "on"
        }

对于物理实例,gitlab.rb应该放在哪里。然后我不仅让它工作,而且可以自动将mydomain.com在网络浏览器中重定向到https://example.com。希望这可以帮助你和其他人。如果您有任何疑问,请告诉我。

编辑:目标群体必须是80,而不是像我错误说明的443。这是因为如果您在端口443上将流量传递给它,gitlab将无法转发SSL。

以上是关于使用HTTPS配置gitlab omnibus,无需在AWS上使用nginx证书的主要内容,如果未能解决你的问题,请参考以下文章

centos6使用Omnibus方法安装gitlab

centos6使用Omnibus方法安装gitlab

GitLab中文社区版Docker镜像安装启动及配置

gitlab 启用HTTPS

gitlab 安装

gitlab-配置邮件