Protokół sieciowy SSL zaprojektowany został z myślą o bezpiecznej transmisji zaszyfrowanego strumienia danych. W przypadku WWW, czyli w architekturze klient-server, zabezpieczanie transmisji można przedstawić w następujący sposób. Przeglądarka nawiązując połączenie z serwerem HTTP(zabezpieczonym SSL), dokonuje weryfikacji serwera oraz inicjuje proces ustalania kluczy i algorytmów szyfrujących. W praktyce oznacza to konieczność posiadania klucza prywatnego wraz certyfikatem wystawionym przez zaufane centrum certyfikacji.
Nieszyfrowana komunikacja z serwerem WWW może być w prosty sposób podsłuchana przez każdego, kto w niej pośredniczy. Istnieje również drugi aspekt, który należy wziąć pod uwagę rozważając zabezpieczenie własnej strony protokołem SSL. Chodzi mianowicie o zapowiedź Google, z której wynika chęć promowania tego tupu stron w wynikach wyszukiwania.
W tym artykule dowiesz się w jaki sposób pozyskać certyfikat oraz skonfigurować HTTPS w cPanel na przykładzie Webd.pl.
- Jakich narzędzi potrzebujesz?
- Generowanie certyfikatu typu Widlcard
- Konfiguracja SSL w cPanel na przykładzie Webd.pl
Jakich narzędzi potrzebujesz?
W celu otrzymania certyfikatu SSL wystawionego przez Let’s Encrypt konieczny będzie dowolny linux oraz program certbot-auto. Jeśli nie posiadasz linuxa możesz np. zainstalować go na maszynie wirtualnej, co też opisuje poniższy wpis:
Jeśli posiadasz już dostęp do linux, to kolejnym krokiem będzie pobranie certbot-auto.
user@webserver:~$ wget https://dl.eff.org/certbot-auto user@webserver:~$ chmod a+x ./certbot-auto user@webserver:~$ ./certbot-auto --help
Generowanie certyfikatu typu Widlcard
Poniższe polecenie pozwala wygenerować certyfikat na konkretną domenę (w tym przypadku better-coding.com), jak również wszystkie jej poddomeny (Wildcard).
./certbot-auto certonly --manual --preferred-challenges dns -d *.better-coding.com -d better-coding.com
Po wykonaniu polecenia zostaniemy poinformowani o tym, że nasz adres IP zostanie zarejestrowana i udostępniona publicznie. W przypadku certyfikatu generowanego na maszynie wirtualnej nie ma żadnych obaw o naszą prywatności i bezpieczeństwo.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 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? - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Kolejnym krokiem jest weryfikacja wnioskującego. W przypadku certyfikatu wildcard wyzwanie polega na dodaniu odpowiedniego wpisu typu DNS TXT do serwera DNS obsługującego naszą domenę.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Please deploy a DNS TXT record under the name _acme-challenge.better-coding.com with the following value: 12631Kpo1XXX_gVbGwQOB9XXXXZRwdGHkWBTb5xxx Before continuing, verify the record is deployed. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Press Enter to Continue
Poniżej zaprezentowałem w jaki sposób skonfigurować taki wpis na przykładzie cPanel(webd.pl). Należy w tym celu zalogować się do panelu, następnie przejść do konfiguracji Zone Editor.
Następnie wybierz domenę, którą chcesz skonfigurować i kliknij Zarządzaj.
W celu dodania przedmiotowego wpisu, kliknij Dodaj Rekord, wybierz Add TXT Record a następnie uzupełnij wpis wymaganymi wartościami. Na koniec zatwierdź wszytko klikając przycisk Dodaj Rekord.
Jeśli poza certyfikatem wildcard zawnioskujesz również o certyfikat na konkretną domenę(bez użycia opcji –preferred-challenges dns), to w ramach weryfikacji konieczne będzie utworzenie pliku na serwerze o wskazanej nazwie i zawartości. Po zakończeniu weryfikacji powinieneś zobaczyć komunikat jak poniżej:
Waiting for verification... Cleaning up challenges IMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at: /etc/letsencrypt/live/better-coding.com/fullchain.pem Your key file has been saved at: /etc/letsencrypt/live/better-coding.com/privkey.pem Your cert will expire on 2018-12-08. 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: Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate Donating to EFF: https://eff.org/donate-le
Gotowy do użycia certyfikat SSL znajduje się w lokalizacji: /etc/letsencrypt/live/your.domain/fullchain.pem. Klucz prywatny znajdziesz w pliku: /etc/letsencrypt/live/your.domain/privkey.pem.
Konfiguracja SSL w cPanel na przykładzie Webd.pl
Większość dostawców usług hostigowych dostarcza interfejs graficzny umożliwiający administrację usługami poprzez przeglądarkę. Jednym z popularniejszych rozwiązań jest cPanel. To własnie na jego przykładzie zaprezentuję w jaki sposób skonfigurować SSL używając przygotowanych w poprzednim punkcie – klucza prywatnego oraz certyfikatu.
Po zalogowaniu do cPanel, przejdź do sekcji Zabezpieczenia, a następnie wybierz SSL/TLS.
Następnie kliknij Zarządzaj witrynami internetowymi chronionymi protokołem SSL.
Wklej przygotowane wcześniej – certyfikat oraz klucz prywatny, a następnie kliknij Autouzupełnianie według certyfikatu.
Na koniec pozostaje już tylko sprawdzić działanie nowej konfiguracji. W tym celu otwórz przeglądarkę i wejdź na skonfigurowaną domenę używając protokołu https (np. https;//better-coding.com). Warto pamiętać, że rozpropagowanie zmiany może zająć nawet kilka minut. Warto odczekać chwilę i powtórzyć weryfikację w przypadku gdy strona nie otworzy się lub nie będzie zaufana.
Dziękuję
Czy ten certyfikat się automatycznie będzie odnawiał na webd.pl?
Niestety nie. Co 3 miesiące trzeba odnawiać. Jeśli jednak ktoś zna sposób jak to robić automatycznie, to prośba o opis.
Witam,
na początku powiem, że jestem “zielony” w linuxie 🙂
Mam następujący problem: