Project

General

Profile

Bug #1631

gitlab lyssnar bara på 443

Added by Martin Bagge - brother over 3 years ago. Updated almost 3 years ago.

Status:
Closed
Priority:
Normal
Assignee:
-
Category:
-
Start date:
2017-02-03
Due date:
% Done:

0%


Description

Det finns ingen webbserver som serverar http://gitlab.bthstudent.se - endast https://gitlab.bthstudent.se erbjuds. Najs med https men det är inte så lätt att hitta om folk inte slussas rätt automatiskt osv...

Det problem som jag sprungit in i är att gitlab på threepersons har två nginx-configs. En i /etc/nginx/sites-enabled/gitlab.bthstudent.se och en i /var/opt/gitlab/nginx/conf/gitlab-http.conf. Den första har ett rewrite-block och ser bra ut, den andra har inget rewrite-block och ingen not om listen 80 som en kan förvänta sig.
Den andra filen styrs enligt dokumentationen från /etc/gitlab/gitlab.rb (för att ändringarna ska appliceras så kör en gitlab-ctl reconfigure så dras chef igång och fixar allt). Efter minimal testning så fann jag att det inte hjälpte att sätta nginx['redirect_http_to_https_port'] = 80 ej heller nginx['enable'] = true. Det blev ingen skillnad mot innan.

Den lösning som används nu (som nog inte är stabil) är att efter gitlab-ctl reconfigure lägga in nedanstående i /var/opt/gitlab/nginx/conf/gitlab-http.conf och sedan köra /opt/gitlab/embedded/bin/sv restart nginx för att läsa in config-ändringen.

server {
  listen 80;
  server_name gitlab.bthstudent.se;
  server_tokens off;
  root /nowhere;
  rewrite ^ https://$server_name$request_uri permanent;
}

(blocket är kopierat från configen i /etc/nginx...)

Nu funkar redirect från http till https. Men det här behöver nog lösas "lite snyggare" osv =)

History

#1 Updated by Mark Otzén over 3 years ago

Enligt https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/doc/settings/nginx.md#redirect-http-requests-to-https satte jag

nginx['redirect_http_to_https'] = true

i /etc/gitlab/gitlab.rb och sedan körde jag gitlab-ctl reconfigure.
Nu beter den sig så här:

$ curl -I http://gitlab.bthstudent.se
HTTP/1.1 301 Moved Permanently
Server: nginx
Date: Thu, 23 Feb 2017 15:32:02 GMT
Content-Type: text/html
Content-Length: 178
Connection: keep-alive
Location: https://gitlab.bthstudent.se:443/

vilket jag anser vara det korrekta beteendet, förutom att den saknar en HSTS-header.

#2 Updated by Mark Otzén over 3 years ago

Enligt https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/doc/settings/nginx.md#change-the-default-proxy-headers lade jag till

nginx['proxy_set_headers'] = {
 "Host" => "$http_host",
 "X-Real-IP" => "$remote_addr",
 "X-Forwarded-For" => "$proxy_add_x_forwarded_for",
 "X-Forwarded-Proto" => "https",
 "X-Forwarded-Ssl" => "on",
 "Strict-Transport-Security" => "max-age=15778476" 
}

(HSTS i ett halvår)

Detta fungerar på alla URIer som ger 200:

$ curl -I https://gitlab.bthstudent.se/explore/projects
HTTP/1.1 200 OK
Server: nginx
Date: Thu, 23 Feb 2017 15:40:28 GMT
Content-Type: text/html; charset=utf-8
Connection: keep-alive
Cache-Control: max-age=0, private, must-revalidate
Etag: W/"895fa781c9013e370f62068be4de842a" 
Set-Cookie: _gitlab_session=0da86f2a58e3b678f11c68d4dfce613e; path=/; secure; HttpOnly
Strict-Transport-Security: max-age=31536000
X-Content-Type-Options: nosniff
X-Frame-Options: DENY
X-Request-Id: 6e47b4d8-752c-48a5-aa2d-2d9743d5f70a
X-Runtime: 0.702607
X-Ua-Compatible: IE=edge
X-Xss-Protection: 1; mode=block

men ingen HSTS-header skickas på / (som ger 301 till /explore/projects). Då man ändå är garanterad HTTPS i den redirecten kan HSTS-header inte strippas, och när den ligger i webbläsaren så är man gucci.

#3 Updated by Mark Otzén over 3 years ago

  • Status changed from New to Resolved

#4 Updated by Calle Rydén almost 3 years ago

Stämmer:

elnet gitlab.bthstudent.se 80
Trying 193.11.190.214...
Connected to artemis.bthstudent.se.
Escape character is '^]'.
GET / HTTP/1.0

HTTP/1.1 301 Moved Permanently
Server: nginx
Date: Mon, 14 Aug 2017 15:27:57 GMT
Content-Type: text/html
Content-Length: 178
Connection: close
Location: https://gitlab.bthstudent.se:443/

<html>
<head><title>301 Moved Permanently</title></head>
<body bgcolor="white">
<center><h1>301 Moved Permanently</h1></center>
<hr><center>nginx</center>
</body>
</html>
Connection closed by foreign host.

Den redirectar konstant

#5 Updated by Calle Rydén almost 3 years ago

  • Status changed from Resolved to Closed

Also available in: Atom PDF