2016-08-28 53 views
9

Próbuję dodać SSL/TLS na mojej statycznej stronie internetowej. Używam statycznych stron Gitlab, a Jekyll jest dla zawartości.
Postępuję zgodnie z tymi instrukcjami, aby skonfigurować TLS - Gitlab tutorial.Strony Gitlab i Jekyll - problem z konfiguracją TLS Lets Encrypted

mam stos na tej części - mam błąd 404 ze stron Gitlab

Po zakończeniu budowy, test ponownie, jeśli wszystko działa dobrze:

# Note that we're using the actual domain, not localhost anymore 
$ curl http://YOURDOMAIN.org/.well-known/acme-challenge/5TBu788fW0tQ5EOwZMdu1Gv3e9C33gxjV58hVtWTbDM 

Problemem jest obok Udało mi się wygenerować certyfikat za pomocą polecenia ./letsencrypt-auto certonly -a manual -d example.com
Utworzono niestandardową stronę letsencrypt-setup.html w katalogu głównym z odpowiednią zawartością.

Uruchomiłem polecenie jekyll build i utworzyłem stronę _site/.well-known/acme-challenge/5TBu788fW0tQ5EOwZMdu1Gv3e9C33gxjV58hVtWTbDM.html.
Kiedy biegnę curl komendę do tej strony to działało i bez .html rozszerzenie - zarówno komendy pracy i powrót odpowiednią wartość

curl http://localhost:4000/.well-known/acme-challenge/5TBu788fW0tQ5EOwZMdu1Gv3e9C33gxjV58hVtWTbDM 
curl http://localhost:4000/.well-known/acme-challenge/5TBu788fW0tQ5EOwZMdu1Gv3e9C33gxjV58hVtWTbDM.html 

Kiedy zatwierdzić zmiany i wcisnąć do Gitlab po tworzenie i wdrażanie mogę pobrać odpowiednią zawartość tylko z drugiego polecenia

curl http://example.com/.well-known/acme-challenge/5TBu788fW0tQ5EOwZMdu1Gv3e9C33gxjV58hVtWTbDM.html 

Kiedy biegł

curl http://example.com/.well-known/acme-challenge/5TBu788fW0tQ5EOwZMdu1Gv3e9C33gxjV58hVtWTbDM 

Mam błąd 404.

Jeśli wciśniesz dalej w skrypcie ./letsencrypte, dostałem również błąd 404. To narzędzie próbuje przed adresem URL bez rozszerzenia .html.

Czytam komentarze w samouczku i próbuję tego workaround, ale to nie działa dla mnie.

nie mam pojęcia co próbować dalej - nie mam doświadczenia partia Jekyll/SSL

Odpowiedz

4

co zrobiłem było to, że kopiowany plik prowokacji po kompilacji zakończonym gitlab, ponieważ nie mogłem dowiedzieć się, jak aby jekyll pomijał rozszerzenie pliku.

mój plik .gitlab-ci.yml

image: ruby:2.3 

pages: 
    script: 
    - gem install jekyll 
    - jekyll build -d public 
    # Use this when creating a new letsencrypt cert, this since jekyll adds .html to the file and letsencrypd does not expect a .html extension 
    - cp ./public/.well-known/acme-challenge/HASHFILE-FROM-LETSENCRYPT.html ./public/.well-known/acme-challenge/HASHFILE-FROM-LETSENCRYPT 
    artifacts: 
    paths: 
    - public 
    only: 
    - master 
+0

Próbowałem z dowiązania symbolicznego ('ln -s'), ale to nie działa. Kopiuj działa. –

9

Innym rozwiązaniem (jak suggested by Marthym) jest po prostu dodać ukośnik na końcu linii odnośnik:

permalink: /.well-known/acme-challenge/5TBu788fW0tQ5EOwZMdu1Gv3e9C33gxjV58hVtWTbDM/ 

W ten sposób, odwiedzenie strony YOURDOMAIN.org/.well-known/acme-challenge/... przekieruje Cię na YOURDOMAIN.org/.well-known/acme-challenge/... / (uwaga na dodatkowy slash), który będzie poprawne dane. Udało mi się to bezbłędnie i nie musiałem aktualizować pliku .gitlab-ci.yml po przełączeniu na inną domenę.

0

Dodanie dodatkowego ukośnika nie zadziałało. Musiałem dodać "/index.html".

odnośnik: /.well-known/acme-challenge/${CHALLENGE}/index.html