由于某些未知的原因,gitlab-ce的https近期出现了问题,被chrome识别出是非安全的连接。索性我们将了gitlab-ce的https改为http。但当下https基本上已经成为了标准,不启用https好像有点说不过去。
本文我们使用nginx来做反向代理来启用https,希望能解决gitlab-ce的证书问题。
gitlab配置
官方文档给出了详细的配置步骤,我们参考即可:
编辑
Edit /etc/gitlab/gitlab.rb:
registry_external_url 'https://gitlab.yourdomain.com' nginx['listen_port'] = 81 nginx['listen_https'] = false
重新配置gitlab:
sudo gitlab-ctl reconfigure
- 在配置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
来测试,看是否达到了预期:
- 访问:http://gitlab.yourdomain.com:443 时给出重定向:http://gitlab.yourdomain.com:443
- 证书正确。
总结
看官方文档很重要,测试也很重要。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。