Generujemy darmowy certyfikat ssl dla swojej strony

Nikomu chyba nie trzeba tłumaczyć, dlaczego warto posiadać własny zaufany certyfikat ssl dla swojej strony internetowej. Atutów przemawiających za nim jest wiele, ja wymienię trzy najważniejsze jak, większe zaufanie do strony do której został podpięty, możliwość włączenia spdy lub http2 dla niej, czy też zwiększenie jej bezpieczeństwa poprzez szyfrowane połączenie. Oczywiście, że można taki certyfikat wygenerować samemu u siebie na serwerze, jednak takie rozwiązanie ma kilka niezaprzeczalnych wad. Jedną z nich jest brak zaufania do takiego certyfikatu co objawia się stosownymi komunikatami przy probie połączenia z taką stroną i ikonką przekreślonego klucza sygnalizującą, że strona jest nie zaufana oraz brakiem możliwości uruchomienia dla niej spdy lub http/2. Nie każdego stać jest jednak na zakup takiego podpisanego przez uprawnioną do tego celu firmę certyfikatu. Jak więc taki certyfikat SSL uzyskać za darmo?

Jedną z organizacji, która Ci taki certyfikat wystawi jest Let’s Encrypt.Zarówno samo wygenerowanie certyfikatu jak i jego wdrożenie jest banalnie proste, warunkiem jest tylko posiadanie własnego serwera dedykowanego lub VPS. W niniejszym artykule powiem jak wygenerować taki certyfikat i jak uruchomić go dla stron zarządzanych przez panel Ispconfig3. Wszystkie polecenia wykonujemy z uprawnieniami root z shella. Zakładam, że strona jest skonfigurowana do połączeń przez www (posiada przekierowanie z example.com na www.example.com), a jej adres to wspomniany www.example.com.

Instalujemy letsencrypt

# git clone https://github.com/letsencrypt/letsencrypt

cd letsencrypt

./letsencrypt-auto --help

następnie generujemy nasz certyfikat, serwer apache musi być wyłączony przy tej operacji! Przynajmniej tak dzieje się w przypadku Debiana.

# ./letsencrypt-auto certonly --standalone -d www.example.com

teraz podajemy swój adres email i zatwierdzamy, po tej operacji powinniśmy dostać informację, że certyfikat został wygenerowany z powodzeniem, a w katalogu /etc/letsencrypt/live/www.example.com/ powinny pojawić się odpowiednie pliki z naszym certyfikatem.

Kolejnym krokiem jest podpięcie tego certyfikatu dla naszej strony.

Logujemy się do naszego panelu Ispconfig3, przechodzimy do zakładki Strony oraz przechodzimy do konfiguracji naszej strony dla której podpinamy certyfikat ssl. Klikamy w zakładke SSL następnie i uzupełniamy dane, w polu Domena SSL wybieramy www.example.com, na samym dole w Akcja SSL wybieramy Utwórz certyfikat i klikamy Zapisz. Generowanie certyfikatu w Ispconfig3 trwa około 1 minuty. Po tym czasie przechodzimy na naszym serwerze do katalogu /var/www/example.com gdzie powinniśmy zobaczyć wygenerowany przez nas certyfikat, są to cztery pliki, z których dwa musimy podmienić, aby wskazywały na nasz podpisany certyfikat wygenerowany w Let’s Encrypt. Wydajemy z konsoli komendy:

# ls -lA /var/www/example.com/ssl/

mv /var/www/example.com/ssl/www.example.com.crt /var/www/example.com/ssl/www.example.com.crt.old

mv /var/www/example.com/ssl/www.example.com.key /var/www/example.com/ssl/www.example.com.key.old

ln -s /etc/letsencrypt/live/example.com/fullchain.pem /var/www/example.com/ssl/www.example.com.crt

ln -s /etc/letsencrypt/live/example.com/privkey.pem /var/www/example.com/ssl/www.example.com.key

Następnie restartujemy Apache wydając polecenie:

#service apache2 restart

Teraz wpisując w przeglądarkę naszą stronę https://www.example.com nie powinniśmy więcej oglądać komunikatu o niezaufanym połączeniu, a przy polu adresu w przeglądarce internetowej powinna pojawić się nam zielona kłódka, a po najechaniu na nią kursorem myszki powinien wyświetlić się komunikat

Zweryfikowana przez: Let’s Encrypt

Uwagi końcowe

Jeżeli korzystasz z cloudflare (lub innego serwera CDN), przed wygenerowaniem certyfikatu musisz puścić ruch bezpośrednio z swojego serwera. W CloudFlare będzie to, wygaszenie wszystkich ikonek w sekcji DNS na szaro. W innym przypadku nie uda ci się wygenerować certyfikatu. Po wygenerowaniu certyfikatu, z powrotem możesz puścić ruch przez CloudFlare.

Certyfikat podpisywany jest na 3 miesiące i w ciągu tego czasu wygenerowany powinien być kolejny, aby to zrobić automatycznie, najlepiej dopisać odpowiednie komendy do crona.

30 1 10 1,3,5,7,9,11 * /letsencrypt/letsencrypt-auto --agree-dev-preview --agree-tos --renew-by-default --standalone --standalone-supported-challenges http-01 --http-01-port 9999 --server https://acme-v01.api.letsencrypt.org/directory certonly -d www.example.com

albo zrobić to ręcznie z konsoli wydając komendę:
# ./letsencrypt-auto --agree-dev-preview --agree-tos --renew-by-default --standalone --standalone-supported-challenges http-01 --http-01-port 9999 --server https://acme-v01.api.letsencrypt.org/directory certonly -d www.example.com

Dla osób posiadających panel Webmin

Osoby posiadające na swoich serwerach panel Webmin, mogą to zrobić szybko i hurtem dla każdej strony, dla której wcześniej certyfikat został wygenerowany. Logujemy się na nasz panel Webmin i przechodzimy do zakładki System > Harmonogram zadań Cron, a następnie klikamy Utwórz nowe zadanie dla Crona i wypełniamy pola:

Uruchom nowe zadanie dla crona jako: root

Aktywne?: TAK

Polecenie: /letsencrypt/letsencrypt-auto renew

Opis: Automatyczne certyfikaty Let’s Encrypt

Następnie wybieramy w Prosty harmonogram: Miesięcznie (pierwszego) i klikamy ZAPISZ

Od tego momentu każdego 1szego dnia miesiąca, letsencrypt-auto będzie nam próbował odnowić certyfikat dla każdej ze stron, dla której został on wygenerowany wcześniej. Certyfikat zostanie jednak odnowiony tylko wtedy, jeśli do końca terminu jego ważności został mniej niż miesiąc czasu.

2 myśli na temat „Generujemy darmowy certyfikat ssl dla swojej strony

  1. … Jedną z organizacji, która Ci taki certyfikat wystawi jest Let’s Encrypt …
    a jakie są inne organizacje. gdzie mogę taki certyfikat ssl uzyskać za darmo ?

Dodaj komentarz

3 × 2 =