Jak zainstalować certyfikat HTTP SSL letsencrypt w hostingu (dla przykładu lh.pl): Różnice pomiędzy wersjami

Z Podręcznik Administratora by OPZ SGU
Przejdź do nawigacji Przejdź do wyszukiwania
 
Linia 41: Linia 41:


<pre>
<pre>
  ./certbot-auto certonly --manual -d naszastronaxxx.pl
  ./certbot-auto certonly --manual -d pornofotyidoroboty.pl
</pre>
</pre>


gdzie naszastronaxxx.pl to domena dla której chcemy wygenerować certyfikat.
gdzie pornofotyidoroboty.pl to domena dla której chcemy wygenerować certyfikat.


--manual oznacza że procedura weryfikacji posiadania praw do domeny odbędzie się manualnie a nie przez skrypt (co jest konieczne z uwagi na brak dostępu do terminala na współdzielonym hostingu).
--manual oznacza że procedura weryfikacji posiadania praw do domeny odbędzie się manualnie a nie przez skrypt (co jest konieczne z uwagi na brak dostępu do terminala na współdzielonym hostingu).
Linia 83: Linia 83:
Naszym zadaniem jest skopiowanie wyświetlonego tekstu i umieszczenie go w pliku tekstowym o zadanej nazwie,
Naszym zadaniem jest skopiowanie wyświetlonego tekstu i umieszczenie go w pliku tekstowym o zadanej nazwie,
przed naciśnięciem przycisku enter, należy sprawdzić czy przechodząc pod podany url przeglądarką WWW otrzymamy nasz plik.
przed naciśnięciem przycisku enter, należy sprawdzić czy przechodząc pod podany url przeglądarką WWW otrzymamy nasz plik.
Jeżeli weryfikacja przebiegła pomyślnie, to otrzymamy następujący komunikat:
<pre>
IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at:
  /etc/letsencrypt/live/pornofotyidoroboty.pl/fullchain.pem
  Your key file has been saved at:
  /etc/letsencrypt/live/pornofotyidoroboty.pl/privkey.pem
  Your cert will expire on 2018-05-20. To obtain a new or tweaked
  version of this certificate in the future, simply run certbot-auto
  again. To non-interactively renew *all* of your certificates, run
  "certbot-auto renew"
- If you like Certbot, please consider supporting our work by:
</pre>
Jak widać nasz certbot wygenerował następujące pliki:
/etc/letsencrypt/live/pornofotyidoroboty.pl/fullchain.pem
/etc/letsencrypt/live/pornofotyidoroboty.pl/privkey.pem
które to należy umieścić w panelu hostingowym.
Zawartość privkey.pem  zawiera klucz prywatny, i kopiujemy go w wypadku lh.pl w pole:
*Klucz prywatny
Następnie otwieramy plik
/etc/letsencrypt/live/pornofotyidoroboty.pl/fullchain.pem
W jego wnętrzu, znajdują się dwa certyfikaty, rozdzielone tekstem
<pre>
-----BEGIN CERTIFICATE-----
RANDOM DATA
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
RANDOM DATA
-----END CERTIFICATE-----
</pre>
pierwszy certyfikat kopiujemy w polę
*Certyfikat
Drugi certyfikat kopiujemy w polę
*Klucze CA
Zapisujemy ustawienia i odwiedzamy naszą stronę z komendą https
powinniśmy otrzymać zieloną kłódkę.
[[Plik:Ssl2.png]]
Ponawiamy procedure dla su-domen.
dla domeny bez SSL ustawiamy przekierowanie w .httaccess na wersję SSL

Aktualna wersja na dzień 04:05, 20 lut 2018

Moment wprowadzenia obowiązku (chyba że będziemy chcieli aby użytkownik końcowy otrzymał od przeglądarki informację o wizycie na niebezpiecznej stronie) posiadania certyfikatu SSL jest bliski warto więc podejść do tematu już teraz.

W pierwszym odczuciu można by rzec że obowiązek posiadania certyfikatu SSL to "skok na kasę" jednak w 21 wieku, certyfikat podstawowy weryfikujący jedynie zgodność serwera i domeny powinien być dostępny śmiesznej cenie. Tutaj mamy zaskoczenie, ponieważ czołowi gracze postanowili subsydiować jego otrzymanie a co za tym idzie możliwość otrzymania takiego certyfikatu za darmo!.

W kwestii bezpieczeństwa nie różni się od niczym od certyfikatu "self signed" wygenerowanym w domowym zaciszu, jednak ma te przewagę że zostanie przez wiodące przeglądarki uznany za wystawiony przez zaufanego wystawcę.

Jeżeli jesteśmy administratorem serwera www, proces instalacji i wygenerowania certyfikatu dla let's encrypt jest banalnie prosty i skupia się do uruchomienia jednej aplikacji (https://github.com/certbot).

Co w sytuacji kiedy nie jesteśmy administratorem danego serwera, a hostingu współdzielonego?

W takim wypadku, zapraszam do lektury:


Oto w jaki sposób wygląda panel pozwalający na dodanie certyfikatu SSL w firmie lh.pl

Ssl1.png

Dzieli się on na 3 zasadnicze pola tekstowe:

  • Klucz prywatny
  • Certyfikat
  • Klucze CA


W zależności od hostingu, mogą one przybrać wygląd pola do uploadu pliku o skomplikowanie brzmiącej nazwie np .pem jednakże będzie to zwykły plik tekstowy, czyli nie wolno dać się zwieść pozorom i zaniechać instalacji:)


Wiedząc że nasz hosting obsługuje możliwość przesłania certyfikatu zajmijmy się jego wygenerowaniem.

W tym celu potrzebny nam będzie środowisko linuksowe, w moim wypadku serwer Debiana. (może być to środowisko headless, zwykły zdalny terminal ssh itp)


Przy pomocy git-a pobieramy repozytorium:

https://github.com/certbot/certbot


Następnie wywołujemy komendę

 ./certbot-auto certonly --manual -d pornofotyidoroboty.pl

gdzie pornofotyidoroboty.pl to domena dla której chcemy wygenerować certyfikat.

--manual oznacza że procedura weryfikacji posiadania praw do domeny odbędzie się manualnie a nie przez skrypt (co jest konieczne z uwagi na brak dostępu do terminala na współdzielonym hostingu).


Po wykonaniu tej komendy powita nas następujący komunikat

-------------------------------------------------------------------------------
NOTE: The IP of this machine will be publicly logged as having requested this
certificate. If you're running certbot in manual mode on a machine that is not
your server, please ensure you're okay with that.

Are you OK with your IP being logged?
-------------------------------------------------------------------------------
(Y)es/(N)o: Y

Zgadzamy się, następnie zostaniemy poproszeni o utworzenie pliku tekstowego na serwerze (posłuży do weryfikacji praw do serwera i domeny)

-------------------------------------------------------------------------------
Create a file containing just this data:

SOMERANDOMDATA:SOMERANDOMDATA

And make it available on your web server at this URL:

http://pornofotyidoroboty.pl/.well-known/acme-challenge/SOMERANDOMDATA

-------------------------------------------------------------------------------
Press Enter to Continue
Waiting for verification...
Cleaning up challenges


Naszym zadaniem jest skopiowanie wyświetlonego tekstu i umieszczenie go w pliku tekstowym o zadanej nazwie, przed naciśnięciem przycisku enter, należy sprawdzić czy przechodząc pod podany url przeglądarką WWW otrzymamy nasz plik.

Jeżeli weryfikacja przebiegła pomyślnie, to otrzymamy następujący komunikat:

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/pornofotyidoroboty.pl/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/pornofotyidoroboty.pl/privkey.pem
   Your cert will expire on 2018-05-20. To obtain a new or tweaked
   version of this certificate in the future, simply run certbot-auto
   again. To non-interactively renew *all* of your certificates, run
   "certbot-auto renew"
 - If you like Certbot, please consider supporting our work by:



Jak widać nasz certbot wygenerował następujące pliki:

/etc/letsencrypt/live/pornofotyidoroboty.pl/fullchain.pem

/etc/letsencrypt/live/pornofotyidoroboty.pl/privkey.pem

które to należy umieścić w panelu hostingowym.


Zawartość privkey.pem zawiera klucz prywatny, i kopiujemy go w wypadku lh.pl w pole:

  • Klucz prywatny


Następnie otwieramy plik

/etc/letsencrypt/live/pornofotyidoroboty.pl/fullchain.pem

W jego wnętrzu, znajdują się dwa certyfikaty, rozdzielone tekstem

-----BEGIN CERTIFICATE-----
RANDOM DATA
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
RANDOM DATA
-----END CERTIFICATE-----

pierwszy certyfikat kopiujemy w polę

  • Certyfikat

Drugi certyfikat kopiujemy w polę

  • Klucze CA


Zapisujemy ustawienia i odwiedzamy naszą stronę z komendą https

powinniśmy otrzymać zieloną kłódkę. Ssl2.png

Ponawiamy procedure dla su-domen. dla domeny bez SSL ustawiamy przekierowanie w .httaccess na wersję SSL