Darmowy certyfikat SSL/TLS z Let's Encrypt

in #polish8 years ago (edited)

lock-33495_640.png

W dzisiejszych czasach zielona kłódka obok adresu witryny w przeglądarce to standard. Szyfrowane połączenie ma zapewnić nam bezpieczeństwo podczas korzystania z sieci i uchronić przed nieautoryzowanym dostępem do naszych prywatnych danych. W świecie aplikacji webowych, gdzie bezpieczne połączenie zapewnia protokół HTTPS, do szyfrowania danych stosowany jest protokół TLS:

TLS (ang. Transport Layer Security) – przyjęte jako standard w Internecie rozwinięcie protokołu SSL (ang. Secure Socket Layer), zaprojektowanego pierwotnie przez Netscape Communications. TLS zapewnia poufność i integralność transmisji danych, a także uwierzytelnienie serwera...

Źródło: wikipedia.org

Jak uzyskać darmowy certyfikat TLS?

Informacja: W tytule celowo zastosowałem stwierdzenie 'certyfikat SSL', ze względu na fakt, iż dawniej protokół HTTPS do szyfrowania korzystał z SSL. Obecnie stwierdzenie 'certyfikat SSL' jest wciąż stosowane (niesłusznie) w kontekście protokołu szyfrowania, wykorzystywanego przez HTTPS. Właściwie to stosowanie protokołu szyfrowania SSL jest zabronione przez Internet Engineering Task Force ze względu na luki w bezpieczeństwie.

Wstęp

W dzisiejszym artykule przedstawię proces implementacji certyfikatów szyfrowania TLS dostarczanych przez urząd certyfikacji Let's Encrypt. W ten sposób dane pomiędzy przeglądarką, a aplikacją serwerową wymieniane będą przy użyciu protokołu HTTPS.

Instalacja narzędzia certbot

Aby uzyskać certyfikaty szyfrowania TLS od Let's Encrypt, potrzebne będzie nam narzędzie o nazwie certbot. Ułatwi nam ono pracę automatycznie pobierając i instalując certyfikaty za nas.

Przejdź do oficjalnej strony narzędzia certbot.

Screen Shot 2018-02-21 at 20.54.43.png

Z oznaczonych powyżej na czerwono pól wybierz kolejno serwer HTTP oraz system operacyjny, na których działa Twoja aplikacja.

Po wybraniu odpowiednich opcji, skrypt powinien wyświetlić instrukcje instalacji narzędzia certbot dla Twojego środowiska serwerowego.

W systemie operacyjnym Ubuntu i przy zastosowaniu serwera Apache, narzędzie certbot zainstalujemy za pomocą poleceń:

$ sudo apt-get install software-properties-common
$ sudo add-apt-repository ppa:certbot/certbot
$ sudo apt-get update
$ sudo apt-get install python-certbot-apache

Instalacja certyfikatów

By automatycznie zainstalować certyfikat za pomocą narzędzia certbot w wierszu poleceń wykonaj poniższe polecenie:

$ sudo certbot --apache

Skrypt zapyta Cię o adres email, na który będą wysyłane powiadomienia odnośnie wygaśnięcia certyfikatu. Podanie adresu email jest obowiązkowe.

W następnym kroku algorytm poprosi o zapoznanie się z zasadami świadczenia usług i o ich akceptację. Zgoda jest konieczna aby kontynuować.

Wciśnij a.

Następnie na ekranie pojawi się prośba o udostępnienie EFF (jednemu z inwestorów w Let's Encrypt) Twojego adresu email w celu przesłania korespondencji związanej z działalnością firmy itp.

Udostępnienie adresu email jest nieobowiązkowe.

W kolejnym kroku, skrypt poprosi o wskazanie identyfikatora aplikacji serwerowej, dla której chcemy aktywować HTTPS.


Which names would you like to activate HTTPS for?
-------------------------------------------------------------------------------
1: mydummyweb.site
2: www.mydummyweb.site
-------------------------------------------------------------------------------

Wybieramy dwie liczby, oddzielone przecinkiem, które odpowiadają nazwom naszej aplikacji.

Teraz skrypt zainstaluje nasze certyfikaty.

Po chwili, jeżeli proces przebiegł pomyślnie, będziemy mieli możliwość ustawienia przekierowania połączeń pomiędzy przeglądarką, a aplikacją serwerową, z protokołu HTTP do HTTPS.

Wybierając 1, żadne zmiany w konfiguracji serwera nie zostaną wprowadzone.

Po wybraniu2, algorytm spróbuje automatycznie zaktualizować konfigurację, tak aby wszelkie połączenia przez HTTP były automatycznie przekierowywane na HTTPS.

Możemy wybrać 1. Konfigurację i tak zmodyfikujemy samodzielnie.

Modyfikacja konfiguracji hosta wirtualnego

Otwórz plik konfiguracyjny wybranego hosta wirtualnego. Plik ten powinien znajdować się w lokalizacji /etc/apache2/sites-enabled/mydomain.com.conf.

$ sudo nano /etc/apache2/sites-enabled/mydomain.com.conf

Na samej górze pliku dodaj poniższą zawartość:


<VirtualHost *:443>
    DocumentRoot /var/www/mydomain.com/
    ServerName mydomain.com
    ServerAlias www.mydomain.com
    <Directory /var/www/mydomain.com/>
        Options +Includes
        Options +FollowSymLinks -Indexes
    </Directory>
    SSLCertificateFile /etc/letsencrypt/live/mydomain.com/cert.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/mydomain.com/privkey.pem
    Include /etc/letsencrypt/options-ssl-apache.conf
    SSLCertificateChainFile /etc/letsencrypt/live/mydomain.com/chain.pem
</VirtualHost>

mydomain.com zastąp nazwą własnej domeny.

Dodatkowo dodaj poniższy kod pomiędzy znacznikami *<VirtualHost *:80></VirtualHost>

Redirect / https://mydomain.com

Przeładuj konfigurację Apache:

$ sudo service apache2 reload

Gotowe!

Korzystając z narzędzia https://sslshopper.com sprawdź poprawność konfiguracji Twoich certyfikatów.

Screen Shot 2018-02-21 at 23.00.56.png

Sprawdź też moje inne publikacje

Sort:  

Ja ostatnio korzystam z https://caddyserver.com/ (też korzysta z lets encrypt)

Testowałem narzędzie i w zasadzie proces instalacji certyfikatów jest równie przyjazny co w narzędziu certbot :) Zdziwiony jestem natomiast, że samo pobranie instalatora caddy z ich oficjalnej strony na maszynę zdalną za pomocą narzędzia wget było nie możliwe. Powód? Brak bezpośredniego linku do archiwum. Na szczęście z pomocą przyszedł skrypt znajdujący się po adresem https://getcaddy.com/ :)

You got a 1.31% upvote from @upmewhale courtesy of @piotr42!

Coin Marketplace

STEEM 0.09
TRX 0.31
JST 0.031
BTC 106980.72
ETH 3879.27
USDT 1.00
SBD 0.59