gitlab-ce使用nginx做反向代理的方式启用https

由于某些未知的原因,gitlab-ce的https近期出现了问题,被chrome识别出是非安全的连接。索性我们将了gitlab-ce的https改为http。但当下https基本上已经成为了标准,不启用https好像有点说不过去。

本文我们使用nginx来做反向代理来启用https,希望能解决gitlab-ce的证书问题。

gitlab配置

官方文档给出了详细的配置步骤,我们参考即可:

  1. 编辑Edit /etc/gitlab/gitlab.rb:

    registry_external_url 'https://gitlab.yourdomain.com'
    
    nginx['listen_port'] = 81
    nginx['listen_https'] = false
  2. 重新配置gitlab:

    sudo gitlab-ctl reconfigure
  3. 在配置nginx时配置转发的header项,包括但不限于:Host, X-Forwarded-Ssl, X-Forwarded-For, X-Forwarded-Port

nginx配置

将以下代码添加到nginx配置文件中,其证书位置等替换为自己的信息。

server {
    listen              443 ssl;
    server_name         gitlab.yourdomain.com;
    ssl_certificate     gitlab.yourdomain.com.crt;
    ssl_certificate_key gitlab.yourdomain.com.key;
    error_page 497 301 =307 https://$host:$server_port$request_uri;
    ssl_protocols       TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers         HIGH:!aNULL:!MD5;
    location / {
            proxy_pass http://localhost:81;
            proxy_redirect off;
            proxy_set_header Host $host:$server_port;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Ssl on;
            proxy_set_header X-Forwarded-Port $server_port;
        }
}

配置完成后使用nginx -T 验证配置是否成功,然后使用nginx -s reload来使配置生效。

然后我们使用curl来测试,看是否达到了预期:

  1. 访问:http://gitlab.yourdomain.com:443 时给出重定向:http://gitlab.yourdomain.com:443
  2. 证书正确。

总结

看官方文档很重要,测试也很重要。


河北工业大学梦云智软件开发团队
河北工业大学梦云智软件开发团队
2.6k 声望
201 粉丝
0 条评论
推荐阅读
macos操作系统VMware ESXI 6.7u2 无法发送按键的解决方法
这直接导致了安装完操作系统后,无法按ctrl+alt+del的组件键进入到输入密码的界面。官方的解决方法是将其升级到 6.7u3。但无耐的人机分离,无法实际操作服务器,而如果选择远程升级相信等待自己的将是一场灾难。

myskies阅读 632

google 浏览器本地使用 https 的解决办法
本地开发 http://localhost需要使用 HTTPS 运行,devServer 设置了 https: true,依然打不开页面,点击高级也没有继续前往的选项。

时倾2阅读 623

把 Go 放到 Nginx C module 之中
最近一段时间,我在做一件有趣的事情,让一个 Nginx C module 通过 Go 代码来访问 gRPC 服务。不得不感慨 Go 真的很流行,让人无法拒绝。之前我做 wasm-nginx-module 时就试图把 tinygo 跑在 Nginx 里面,这次则...

spacewander2阅读 2.1k评论 2

拒绝裸奔,为 Elasticsearch 设置账号密码(qbit)
前言2019 年 5 月 21 日,Elastic 官方博客发文称,ES 6.8 和 7.1 免费开放基本的安全功能。包括: {代码...} 铭毅天下解读: Elasticsearch 7.1免费安全功能全景认知阮一鸣《Elasticsearch核心技术与实战》有对...

qbit阅读 6.5k

化虹为桥 - Nginx 如何代理 UDP “连接”
众所周知,UDP 并不像 TCP 那样是基于连接的。但有些时候,我们需要往一个固定的地址发送多个 UDP 来完成一个 UDP 请求。为了保证服务端能够知道这几个 UDP 包构成同一个会话,我们需要在发送 UDP 包时绑定某个端...

spacewander4阅读 907

gitlab-ce将https修改为http
索性我们禁用gitlab的https功能,将期恢复为http。后期我们再在部署一个nginx进行数据转发,然后在nginx上起用https并设置证书。这样应该就规避了gitlab的证书错误问题。

myskies1阅读 650

nginx配置ssl证书
{代码...}

eyuxiog1阅读 1.3k

2.6k 声望
201 粉丝
宣传栏