Mateusz Mazurek – programista z pasją

Python, architektura, ciekawostki ze świata IT

Linux Programowanie Programowanie webowe Utrzymanie oprogramowania

Darmowy certyfikat TLS (HTTPS) od Lets Encrypt

Cześć! Cieszę się, że mnie odwiedziłeś/aś. Zanim przejdziesz do artykułu chciałbym zwrocić Ci uwagę na to, że ten artykuł był pisany kilka lat temu (2016-02-16) miej więc proszę na uwadzę że rozwiązania i przemyślenia które tu znajdziesz nie muszą być aktualne. Niemniej jednak zachęcam do przeczytania.

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:

  1.  Klonujemy repozytorium.
  2. 1
    git clone https://github.com/letsencrypt/letsencrypt
  3.  Przechodzimy do folderu z aplikacją
  4. 1
    cd letsencrypt
  5. Uruchamiany generowanie
  6. 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 :)

Dzięki za wizytę,
Mateusz Mazurek

A może wolisz nowości na mail?

Subskrybuj
Powiadom o
guest

Witryna wykorzystuje Akismet, aby ograniczyć spam. Dowiedz się więcej jak przetwarzane są dane komentarzy.

4 komentarzy
Inline Feedbacks
View all comments
Rosol

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.