代理后对 GitLab 的 HTTPS 支持

代理后对 GitLab 的 HTTPS 支持

我有一个公共静态 IP 地址和几个在自己的虚拟机上的端口 80 和 443 上运行的应用程序。

其中之一就是 GitLab。

由于我无法将端口 80/443 转发到其中一个,因此我必须:

  1. 一台 Ubuntu 机器接收所有 80/443 个请求。
  2. nginx安装在其上并根据主机头配置为代理服务器,例如scm.mydomain.com配置为proxy_pass 192.168.50.200GitLab 机器。

到目前为止一切都按预期进行。

我的挑战是如何启用https对 GitLab 的支持。我知道当我编辑时external_urlGitLabhttps://....会处理其余的事情,但问题就从这里开始,因为现在我必须在代理服务器中转发端口 443 而不是 80,如果没有有效的证书,这是不可能的,而且scm.mydomain.comGitLab 机器上已经安装了有效的证书。

有解决办法吗?

这是我nginx正在运行的 80 端口的配置:

server {
    listen 80;
    server_name scm.mydomain.com;

    location / {
        include proxy_params;
        proxy_pass http://192.168.50.200;
    }
}

答案1

如果没有有效的证书,这是不可能的

是的。只需设置proxy_ssl_verify为假。

server {
    listen 80;
    server_name scm.mydomain.com;

    location / {
        include proxy_params;
        proxy_pass http://192.168.50.200;
    }
}

server {
        listen 443 ssl http2;
        server_name scm.mydomain.com;;

        ssl_certificate /etc/letsencrypt/live/www.example.com/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/www.example.com/privkey.pem;

        include snippets/ssldefaults.conf;
        location / {
                include snippets/proxydefaults.conf;
                proxy_ssl_verify off;
                proxy_pass  https://192.168.50.200/ ;
        }
    }

相关内容