apache 2.4 + gitlab + letsencrypt não funciona

4

Eu uso a seguinte configuração para ativar o suporte ao letsencrypt em todos os vhosts:

ProxyPass /.well-known/acme-challenge !

Alias /.well-known/acme-challenge/ /var/www/letsencrypt/.well-known/acme-challenge/

<Directory "/var/www/letsencrypt/.well-known/acme-challenge/">
    Options None
    AllowOverride None
    ForceType text/plain
    RedirectMatch 404 "^(?!/\.well-known/acme-challenge/[\w-]{43}$)" 
</Directory>

isso funciona bem para todos os hosts (principalmente sites php ou estáticos), exceto o gitlab

Estou usando esta configuração: link

Meu palpite é que essa parte da configuração é um problema:

<Location />
    # New authorization commands for apache 2.4 and up
    # http://httpd.apache.org/docs/2.4/upgrading.html#access
    Require all granted

    #Allow forwarding to gitlab-workhorse
    ProxyPassReverse http://127.0.0.1:8181
    ProxyPassReverse http://YOUR_SERVER_FQDN/
  </Location>

mas qual é a melhor maneira de resolver isso?

    
por kannix 15.05.2017 / 13:54

1 resposta

5

Acho que há dois problemas aqui:

  1. O DocumentRoot é algo fora de /var/www/letsencrypt
  2. gitlab-workhorse está reescrevendo a solicitação

O material do alias deve solucionar o primeiro problema, mas essa adição deve permitir que a solicitação bem conhecida não seja reescrita pelo GitLab. De acordo com o comentário:

#Forward all requests to gitlab-workhorse except existing files like error documents

O Gitlab já escreveu uma regra para exclusão, portanto, podemos adicionar a ela.

Adicione a seguinte linha antes do RewriteRule

RewriteCond %{REQUEST_URI} !^.*/\.well-known/.*$ [NC]

Isso adiciona uma condição para NÃO reescrever solicitações que contenham .bem conhecido. Reinicie o Apache e teste.

    
por 17.05.2017 / 14:53