使用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/
这给了我需要的提示。我必须做的是:
- 创建我的Route 53 DNS名称
- 根据我的新DNS名称创建我的ACM证书
- 使用我的GitLab EC2实例创建我的应用程序ELB,目标组是具有端口80的EC2实例。
- 注意到gitlab关于转发SSL端口的文档:https://docs.gitlab.com/omnibus/settings/nginx.html#supporting-proxied-ssl
- 在我的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证书的主要内容,如果未能解决你的问题,请参考以下文章