Certyfikat SSL Let’s Encrypt
Może na początek przedstawię czym jest certyfikat ssl i dlaczego akurat Let’s Encrypt. Użycie certyfikatu SSL umożliwia szyfrowanie ruchu poprzez użycie protokołu HTTPS. Zapewnia to ograniczenie możliwości podsłuchiwania ruchu sieciowego. Jak widać, dość przydatna rzecz.
A czemu akurat Let’s Encrypt? Ponieważ jest to dość nie dawno powstały urząd certyfikacji, którego głównym celem jest „walka” z używanie niezaszyfrowanego protokołu HTTP. Realizuje on swoją wizję dostarczając darmowe certyfikaty TLS (jest to bardziej rozwinięta wersja protokołu SSL), oraz zestaw narzędzi do zarządzania i integracji certyfikatów.
Mój przypadek
Jakiś czas temu okazało się, że mój domowy serwer odmówił posłuszeństwa i byłem zmuszony przenieść się gdzieś… No ale właśnie, gdzie i jak. Zawsze w takich sytuacjach kombinowałem jakąś maszynę na szybko i uruchamiałem wszystko na szybko. Tym razem jednak stwierdziłem, że wystarczy mi takich przygód. Szybkie poszukiwania, główne kryterium cena i padło na webd.pl. Ogólnie nie narzekam. Jednak szybko okazało się, że webd.pl nie wspiera Let’s Encrypt. Można kupić u nich certyfikat, no ale po co jak można mieć za darmo. Moje rozwiązanie problemu ma jedną wadę. Trzeba będzie przeprowadzać podobny proces co 3 miesiące, bo tyle ważny jest certyfikat. Na chwilę obecną automatów na webd.pl nie ma. Jeżeli ktoś poszukuje na to z tego co się orientuję to ovh.pl takowe posiada.
Generowanie certyfikatu
Narzędzie do generowania certyfikatu przeznaczone jest na platformę Linux, której w chwili obecnej nie posiadałem, stąd na szybko postawiłem wirtualną maszynę, uruchomiłem ssh i wziąłem się do roboty.
Jeżeli tak jak ja macie czysty system Linux bez dodatków to należy zainstalować git’a
sudo apt-install git
Następnie klonujemy odpowiednie repozytorium
git clone https://github.com/letsencrypt/letsencrypt
Teraz przechodzimy do katalogu letsencrypt
cd letsencrypt
Następnie uruchamiamy skrypt. Po każdym „-d” podajemy adres dla którego chcemy wygenerować certyfikat, w moim przypadku wyglądało to następująco:
./letsencrypt-auto certonly -a manual --rsa-key-size 4096 -d mati-ck.pl -d www.mati-ck.pl
Podajemy hasło użytkownika i skrypt rusza.
Następnie musimy odpowiedzieć na pytanie czy zgadzamy się z warunkami: jeżeli tak klepiemy „A” – jak agree, lub „C” – jak Cancel.
Kolejnym pytaniem jest: „Czy chciałbyś udostępnić swój adres e-mail dla Electronic Frontier?”, osobiście nie lubię spamu więc poszło „N”.
Następnie pada ostrzeżenia, że jeżeli używasz certbota w trybie manualnym na komputerze, który nie jest Twoim serwerem to upewnij się, że jesteś bezpieczny. Odpowiadamy „Y” – o ile jesteśmy pewni.
W kolejnym punkcie proszeni jesteśmy otworzenie pliku zawierające wygenerowane dane pod ścieżką http://twoja-domena.pl/.well-known/acme-challenge/nazwa-pliku-podana-przez-narzędzie
Jeżeli stworzymy plik o podanej nazwie i treści potwierdzamy w konsoli „Enterem”. Potem następuje generowanie odpowiednich plików potrzebnych do certyfikacji.
Potrzebne nam pliki powinny znajdować się w katalogu /etc/letsencrypt/live/twoja-domena.pl/
Ustawienia hostingu
Skoro mamy wszystko co potrzebne, zabieramy się za nasz hosting.
W sekcji „Zabezpieczenia” klikamy w „SSL/TLS”. Tam na samym dole znajduje się opcja „Zarządzaj witrynami internetowymi chronionymi protokołem SSL” i tam przechodzimy.
Na dole wybiera z listy wybieramy interesującą nas domenę i w pole „Certyfikat: (CRT)” wklejamy treść pliku cert.pem. W pole „Klucz prywatny (KEY)” wklejamy treść pliku privkey.pem. Klikamy Zainstaluj certyfikat i to tyle. Dzięki temu darmowy certyfikat SSL mamy zainstalowany.
Powinniśmy jeszcze zmodyfikować plik .htaccess dodając do niego treść.
# BEGIN Force SSL
# This should be the first rule before other rules
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L]
</IfModule>
# END Force SSL
Dzięki wielkie! Mam na webd.pl hosting i osobiście nie siedzę w certyfikatach czy backendzie na codzień i po prostu bym tego nie rozkminił. Dzięki artykułowi zrobię certyfikat za darmo i szybko! Jeśli wpadłeś albo wpadniesz na jakiś sposób automatyzacji to byłbym wdzięczny gdybyś zaktualizował artykuł 🙂
Jeżeli tylko uda mi się coś zrobić w tej materii na pewno poinformuję 🙂
Dzięki!
Obecnie mogę cieszyć się certyfikatem SSL na swoim blogu.
Pozdrawiam.
Niestety nie ma opcji automatyzacji na webd. Np. na kei robi się to automatycznie co upraszcza życie w przypadku kilkudziesięciu domen.
Witam, też niestety ręcznie musimy się co parę miesięcy męczyć z let’s encrypt. Chyba pora zmienić hosting na nowocześniejszy.