Darmowy certyfikat TLS (HTTPS) od Lets Encrypt
Witam w nowym roku ;) Dziś pogadamy o Internecie.
Na cały Internet składa się mnóstwo mniej lub bardziej ważnych protokołów.
Jednym z tych bardziej ważnych jest HTTP. Za pomocą protokołu HTTP przesyła się żądania udostępnienia dokumentów WWW i informacje o kliknięciu odnośnika oraz informacje z formularzy. Zadaniem stron WWW jest publikowanie informacji – natomiast protokół HTTP właśnie to umożliwia.
Rozwój Internetu zaczyna wymagać od użytkowników szyfrowania informacji – takie działanie zapewnia nam iż dane jakie odbieramy nie były podczas przesyłu zmienione ani podejrzane przez kogoś kto nie powinien ich widzieć. Szyfrować możemy za pomocą certyfikatów. Takie certyfikaty wydają urzędy certyfikacji.
Certyfikaty kosztują. Poza tym trzeba je odnawiać co również kosztuje. Nie dawno natknąłem się na darmową alternatywę – Let’s Encrypt.
Aby otrzymać certyfikat od tej organizacji należy sobie go po prostu wygenerować ;) Ja robiłem to na linuxie – CentOSie 6.5.
Instrukcja krok po kroku:
- Klonujemy repozytorium.
- Przechodzimy do folderu z aplikacją
- Uruchamiany generowanie
1 | git clone https://github.com/letsencrypt/letsencrypt |
1 | cd letsencrypt |
1 | ./letsencrypt-auto --manual certonly |
On teraz poinstaluje sobie mnóstwo rzeczy do Pythona. Pomyśli chwilę nad „Installing Python packages…” aż w końcu pokaże się okienko podobne do:
I wpisujemy tutaj domenę dla której generujemy certyfikat, np. mmazur.eu.org. No i naciskamy Ok. Następne okno:
Tutaj naciskamy Yes.
No i teraz mamy tę część w której musimy wykonać pewne akcje na naszej stronie. Dostaliśmy taki komunikat:
Z tego interesują nas te fragmenty:
Pierwszy określa pod jakim linkiem musi być dostępny tworzony plik a drugi fragment to kawałek polecenia tworzący ten plik. W tym przykładzie tworzymy certyfikat dla strony rap-cytaty.com i widzimy że tworzony plik powinien być dostępny pod adresem
1 | http://rap-cytaty.com/.well-known/acme-challenge/vt(...)H8 |
a kawałek polecenia tworzący ten plik to
1 | printf "%s" vtp(...)eI1d4M > .well-known/acme-challenge/vtpGV(...)H8 |
Tworzymy więc ten plik. I naciskamy enter.
Po tym powinniśmy dostać na ekranie efekt podobny do
– Congratulations! Your certificate and chain have been saved at
/etc/letsencrypt/live/rap-cytaty.com/fullchain.pem. Your cert will
expire on 2016-05-16. To obtain a new version of the certificate in
the future, simply run Let’s Encrypt again.
A w owym folderze znalazły się pliki:
1 | cert.pem chain.pem fullchain.pem privkey.pem |
Aby dodać tak wygenerowany certyfikat do swojej strony musimy do wrzucić na serwer. A korzystając z DirectAdmina możemy wkleić pierw zawartość pliku cert.pem w to duże pole na dole a potem w to samo pole, pod tym co teraz wkleiliśmy – dodać zawartość pliku privket.pem
Gdy zrobimy to, to klikamy „Zapisz”. Wchodzimy teraz w to samo miejsce ponownie, schodzimy na sam dół strony i pod tym textarea gdzie we wcześniejszym kroku wklejaliśmy zawartość wygenerowanych certyfikatów klikamy na „Kliknij tu”:
Tam zaznaczamy checkbox „Użyj certyfikatu CA” i w pole poniżej wklejamy zawartość pliku chain.pem. Klikamy zapisz i możemy cieszyć się zaufanym certyfikatem :)
Takim właśnie sposobem, mój blog, pierwszy raz w swojej historii ma HTTPS’a :)
Mateusz Mazurek
Informacyjnie – certyfikat jest ważny 3 miesiące od daty wygenerowania.
Taka uwaga. Jeśli ktoś podpisuje certyfikat na serwerze, gdzie działa już apache czy inny nginx, to musi najpierw wyłączyć web serwer, inaczej dostanie błąd socket error i nie podpisze certyfikatu.
A poza tym, fajna i prosta sprawa taki certyfikat, szkoda tylko że na 3 miesiące.
Dzięki za info ;) Lepszy na 3 miesiące niż w ogóle, nie? ;)