Jak zainstalować certyfikat HTTP SSL letsencrypt w hostingu (dla przykładu lh.pl): Różnice pomiędzy wersjami
(Utworzono nową stronę "Moment wprowadzenia obowiązku (chyba że będziemy chcieli aby użytkownik końcowy otrzymał od przeglądarki informację o wizycie na niebezpiecznej stronie) posiadan...") |
|||
(Nie pokazano 2 pośrednich wersji utworzonych przez tego samego użytkownika) | |||
Linia 14: | Linia 14: | ||
Oto w jaki sposób wygląda panel pozwalający na dodanie certyfikatu SSL w firmie lh.pl | Oto w jaki sposób wygląda panel pozwalający na dodanie certyfikatu SSL w firmie lh.pl | ||
[[Plik:Ssl1.png|300px]] | |||
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ę | |||
<pre> | |||
./certbot-auto certonly --manual -d pornofotyidoroboty.pl | |||
</pre> | |||
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 | |||
<pre> | |||
------------------------------------------------------------------------------- | |||
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 | |||
</pre> | |||
Zgadzamy się, następnie zostaniemy poproszeni o utworzenie pliku tekstowego na serwerze (posłuży do weryfikacji praw do serwera i domeny) | |||
<pre> | |||
------------------------------------------------------------------------------- | |||
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 | |||
</pre> | |||
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: | |||
<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
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ę.
Ponawiamy procedure dla su-domen. dla domeny bez SSL ustawiamy przekierowanie w .httaccess na wersję SSL