Co to takiego ten certyfikat Let’s Encrypt
Let’s Encrypt jest darmowym certyfikatem SSL, który idealnie nadaje się jako alternatywa płatnych wersji typu RapidSSL, SuperFAST SSL Wildcard, Certum Commercial SSL itp. Zdecydowanie zalecam aby każda strona WWW była chroniona certyfikatem SSL, który nie tylko podnosi reputację ale również pozwala na bezpieczną komunikację i wymianę danych pomiędzy użytkownikiem a aplikacją internetową.
Certyfikat Let’s Encrypt możemy zainstalować na dwa sposoby:
• automatycznie – wykorzystując wbudowany skrypt na serwerze
• ręcznie – samoczynnie należy wygenerować podanie o certyfikat, zweryfikować domenę oraz zainstalować wygenerowane certyfikaty
Wydaje się trudne, ale zapewniam, że tylko na początku. Przejdziemy przez wszystkie ścieżki razem abyś mógł sam przekonać się, która opcja najbardziej ci odpowiada. Dodatkowo opiszę na co należy zwrócić uwagę i czego możemy się spodziewać.
Należy pamiętać, że certyfikat Let’s Encrypt jest ważny tylko przez 90 dni. Po tym czasie należy go odnowić. Zostaniesz o tym powiadomiony mailowo na tydzień przed wygaśnięciem certyfikatu.
Oczywiście przed instalacją certyfikatu Let’s Encrypt należy się upewnić czy aby na pewno nasze konto hostingowe umożliwia jego instalację.
Instalację certyfikatu Let’s Encrypt omówię na przykładzie panelu DirectAdmin. Aby móc w ogóle zainstalować certyfikat musisz sprawdzić czy masz włączona opcje Bezpieczny SSL w panelu zarządzania domeną. Jeśli nie, to zrób to w pierwszej kolejności. Zaloguj się do DirectAdmin, wybierz Zarządzanie domenami, zaznacz Bezpieczny SSL i zapisz. Następnie zaznacz Użyj dowiązania symbolicznego private_html do public_html a następnie zapisz zmiany (jeżeli w katalogu private_html masz jakiekolwiek pliki to zostaną one usunięte!).
Automatyczna instalacja certyfikatu Let’s Encrypt
Automatyczna instalacja certyfikatu jest banalnie prosta i sprowadza się do wypełnienia formularza instalacyjnego dla certyfikatów SSL.
Zaloguj się do panelu DirectAdmin, wybierz domenę dla której chcesz zainstalować certyfikat, przejdź do sekcji Zaawansowane opcje i wybierz Certyfikaty SSL.
Zaznacz Darmowe i automatyczne certyfikaty od Let’s Encrypt i wypełnij formularz.
Pola jakie należy wypełnić to:
• Domena (CN)
wpisujesz nazwę swojej domeny np. www.twojadomena.pl
• E-mail
wpisujesz adres poczty elektronicznej np. admin@twojadomena.pl
• Rozmiar klucza (bity)
zazwyczaj są dostępne dwie wartości: 2048, 4096. Najlepiej ustawić większą.
• Typ certyfikatu
SHA1, SHA256. Najlepiej pozostawić wartość domyślną czyli SHA 256.
Wypełniony formularz zapisz. Jeśli nie zobaczysz żadnego komunikatu o błędzie, to cała operacja przebiegła pomyślnie. Brawo, zainstalowałeś certyfikat SSL.
Ręczna instalacja certyfikatu Let’s Encrypt
Aby ręcznie zainstalować certyfikat Let’s Encrypt nie wystarczy przeklikać się przez formularz. Wynika to z tego, że sami musimy potwierdzić, że jesteśmy właścicielami domeny i mamy do niej dostęp.
Są trzy sposoby weryfikacji swojej domeny.
Formularz generujący certyfikat Let’s Encrypt oraz sposoby weryfikacji domeny znajdziesz na stronie sslforfree.
UWAGA! Nie wszystkie te sposoby muszą być dostępne na twoim koncie hostingowym. Z uwagi na politykę bezpieczeństwa niektóre mogą być zablokowane.
1. Automatically Verify Domain
W tym przypadku należy wypełnić formularz, który umożliwi dostęp do twojego konta FTP.
UWAGA! Nie zalecam takiego rozwiązania. W ostateczności można wybrać tą metodę weryfikacji ale tylko i wyłącznie w przypadku jeśli masz możliwość utworzyć osobne konto użytkownika FTP, który ma dostęp tylko do domeny, dla której chcesz wygenerować certyfikat Let`s Encrypt. Jeśli podasz dane głównego konta, którym zarządzasz swoimi usługami, to w ten sposób ujawniasz dostęp do całej zawartości konta FTP.
2. Manually Verify Domain (HTTP Server)
W tym przypadku od razu należy zwrócić uwagę na to, że porty 80 oraz 443 muszą być dostępne – otwarte – z możliwością przyjmowania i wysyłania danych. Często się zdarza, że polityka bezpieczeństwa firmy hostingowej nakazu aby te porty były zamknięte lub przekierowane na inne, w celu zmylenia hackerów.
Procedura weryfikacji jest bardzo prosta. W głównym katalogu swojej domeny, czyli tam gdzie masz umieszczone pliki ze swoją stroną WWW, należy dodać katalog
.well-known
a w nim kolejny
acme-challenge
Do tego ostatniego katalogu (acme-challenge) należy wgrać pliki, które pobierz ze strony z instrukcją weryfikacji twojej domeny. W naszym przypadku będą to pliki:
• Download File #1
• Download File #2
Pliki wrzuć najlepiej poprzez klienta FTP np. FileZilla lub bezpośrednio poprzez menadżer plików na koncie hostingowym (bardziej problematyczne; lepszy jest program do FTP). Po wgraniu plików należy kliknąć w dwa podane niżej adresy WWW. W naszym przykładzie będą to:
http://twojadomena.pl/.well-known/acme-challenge/nPqOnKDxKE8Wcop5fl8G9L5XtiONepNuzib2I0zCBME
http://www.twojadomena.pl/.well-known/acme-challenge/yi_nymXcPMDKYTFuskx52W5bpV8mNziRSJd3JzuwJds
UWAGA! Jeżeli po utworzeniu katalogów, wgraniu plików i kliknięciu w link pojawi się komunikat błędu to albo popełniłeś gdzieś błąd (sprawdź nazwy katalogów! I ich umiejscowienie) albo twój usługodawca zablokował możliwość weryfikacji poprzez wgranie plików na serwer. W tym przypadku pozostaje ci weryfikacja nr 3. Pozytywny wynik weryfikacji powinieneś móc uzyskać praktycznie natychmiast po wgraniu plików.
3. Manually Verify Domain (DNS)
W tym przypadku należy dodać rekord weryfikacyjny w panelu DirectAdmin. Jak to zrobić?
Logujesz się do DirectAdmin i wybierasz domenę dla której chcesz wygenerować certyfikat SSL Let`s Encrypt. W sekcji Twoje konto przejdź do Zarządzanie DNSami. Możliwość dodania nowego rekordu masz na dole ekranu tak jak to widzisz na zdjęciu poniżej.
Musisz dodać rekord TXT z następującymi danymi
Załączam również kopię tekstową na wypadek gdyby nie otworzyło ci się zdjęcie z danymi:
Add TXT record with the name/host
_acme-challenge.twojadomena.pl
with the value
kQMCUa53hpYFAW6-3mpoyeNSNNJTYLKgcIhSIa-sn8M
and a TTL (Time to Live) (in seconds) of
1
Add TXT record with the name/host
_acme-challenge.www.twojadomena.pl
with the value
q4hG3iWZv-5ZNqIpXQeCh1vKcFq5Pf4tupAdWp7j-x0
and a TTL (Time to Live) (in seconds) of
1
Na powyższym przykładzie widzimy, że trzeba dodać dwa rekordy DNS. Każdy jeden jest przeznaczony osobno dla wersji adresu twojastrona.pl z przedrostkiem WWW jak i bez przedrostka WWW.
Wypełniony formularz dodania rekordu DNS powinien wyglądać tak jak na zdjęciu poniżej.
Po uzupełnieniu pól klikasz przycisk Dodaj. Nie zapomnij wprowadzić zmian w polu TTL (1) i zapisać zmianę. Analogicznie postępujesz z drugim rekordem TXT.
UWAGA!! Dodając wartość w polu Nazwa (name/host) zwróć uwagę na to aby dodać na końcu kropkę. Ma to wyglądać tak jak poniżej:
_acme-challenge.twojadomena.pl
_acme-challenge.twojadomena.pl.
Na stronie z procedurą weryfikacji masz podaną wersję bez kropki dlatego musisz sam ją dodać. Bez kropki procedura weryfikacji może się nie powieść.
Po dodaniu rekordów zweryfikuj poprawność ich dodania poprzez kliknięcie w linki umieszczone poniżej formularza z instrukcją dodania rekordów. W naszym przypadku będzie to:
• Verify _acme-challenge.twojadomena.pl
• Verify _acme-challenge.www.twojadomena.pl
Zaleca się aby najpierw wprowadzić zmianę w TTL a po 24-rech godzinach dodać rekordy TXT. Ma to związek z rozgłoszeniem uaktualnionych (nowych) danych. Zazwyczaj tak jest, ale nie zawsze. To również zależy od infrastruktury serwerowej. Jeżeli nie jesteś cierpliwy, możesz od razy wprowadzić wszystkie nowe dane i sprawdzić czy zostały zaakceptowane. Jeśli nie, to poczekaj 24-ry godziny.
Jeśli nie wyświetli się żaden błąd, to procedura weryfikacji się powiodła i pozostaje ci tylko wygenerować certyfikat Let`s Encrypt klikając w przycisk Download SSL Certificate.
UWAGA! W przypadku dodania rekordu DNS w celu zweryfikowania domeny należy uzbroić się w cierpliwość bowiem rozgłoszenie zmian może zająć nawet do 72 godzin. Nie zawsze trzeba tyle czekać. Z mojego doświadczenia wynika, że naniesione zmiany pojawiają się dość szybko; nawet w kilka sekund/minut po zapisaniu zmian. Najlepiej co jakiś czas próbować weryfikować domenę poprzez kliknięcie w link jaki został nam podany w instruktarzu sposobu weryfikacji naszej domeny.
Jeżeli po upływie 24 a na pewno 72 godzin nasza domena nie przechodzi weryfikacji to należy zweryfikować czy wszystko poprawnie wprowadziłeś. Jeśli dane są poprawnie wprowadzone to pozostaje tylko pisać do obsługi technicznej swojego konta hostingowego.
UWAGA! W trakcie całej procedury weryfikacji oraz generowania certyfikatu nie należy odświeżać strony gdyż zostaną wygenerowane nowe dane weryfikacyjne i wszystko trzeba będzie zaczynać od nowa.
Powyższe dane zostały wygenerowane jako przykład. Dla każdej domeny dane przedstawione powyżej będą unikatowe i są niepowtarzalne.
Dlaczego opisuję również ręczną metodę instalacji certyfikatu? Dlatego, że nie wszystkie konta hostingowe mają możliwość automatycznej instalacji tego certyfikatu. Mówię tu o tych kontach, które mają najbardziej ubogie możliwości konfiguracyjne i są z reguły najtańsze w swojej ofercie.
Jak wygąldają komunikaty błędów podczas instalacji certyfikatu Let’s Encrypt
Komunikat zwracany po pozytywnej weryfikacji wygląda tak jak poniżej:
TXT Record(s) Found. Make sure the value matches the value specified by the instruction for with the domain hostname:
HOST: _acme-challenge.twojastrona.pl
TTL: 1
TXT: c-azBmqWlV9P8wxmSHaWED3rTNjRz0KXUquXwpHpSTI
Komunikat po nieudanej weryfikacji wygląda podobnie jak ten poniżej (weryfikacja poprzez umieszczenie plików na FTP):
Domain "twojastrona.pl" challenge3 failed. Response from "https://acme-v02.api.letsencrypt.org/acme/chall-v3/1094999461/TO4yvw" was:
Warning: Your verification URL is not returning the correct contents to our verification servers. The URL looks like it is blocking bots and which inadvertently blocks our servers from receiving the correct content. Contact your host, a professional developer or admin for further help with fixing it.
Error: Invalid response from http://twojastrona.pl/.well-known/acme-challenge/OPUwNKe4pQid92K64ZfVi7-QCnvvkIle3nBDr-cq2ew [tutaj adres IP usunięty]: „\n\n\n
Full Error: { „type”: „http-01”, „status”: „invalid”, „error”: { „type”: „urn:ietf:params:acme:error:unauthorized”, „detail”: „Invalid response from http://twojastrona.pl/.well-known/acme-challenge/OPUwNKe4pQid92K64ZfVi7-QCnvvkIle3nBDr-cq2ew [tutaj adres IP usunięty]: \”\u003c!DOCTYPE html\u003e\\n\u003chtml style=\\\”height:100%!\\(MISSING)\”\u003e\\n\u003chead\u003e\\n\u003cmeta name=\\\”viewport\\\” content=\\\”width=device-width, initial-scale=1, shrink-to-\””, „status”: 403 }, „url”: „https://acme-v02.api.letsencrypt.org/acme/chall-v3/1094999461/TO4yvw”, „token”: „OPUwNKe4pQid92K64ZfVi7-QCnvvkIle3nBDr-cq2ew”, „validationRecord”: [ { „url”: „http://twojastrona.pl/.well-known/acme-challenge/OPUwNKe4pQid92K64ZfVi7-QCnvvkIle3nBDr-cq2ew”, „hostname”: „twojastrona.pl”, „port”: „80”, „addressesResolved”: [ „[tutaj adres IP usunięty]” ], „addressUsed”: „[tutaj adres IP usunięty]” } ] }
Komunikat po nieudanej weryfikacji wygląda podobnie jak ten poniżej (weryfikacja poprzez dodanie rekordu DNS):
No TXT Record Found. Make to set the TTL to 1 second or if you cannot set the TTL then you must wait the TTL (in seconds) so it updates before verifying the domain. Contact your DNS provider if unsure.
Zainstalowanie wygenerowanych certyfikatów
Po wygenerowaniu certyfikatu otrzymasz trzy pliki:
• Certificate
• Private Key
• CA Bundle
Skopiuj je do notatnika i zapisz z dedykowaną nazwą. Nie używaj programu, który może mieć własne , domyślne ustawienia formatowania. W takim przypadku mogą zostać naniesione dodatkowe znaki (np. spacja, enter) przez co certyfikat będzie niepoprawny. W przypadku Linuksa może się zdarzyć, że skopiowana zawartość będzie dodatkowo bogata w entery pomiędzy wersami. W takim przypadku również certyfikat będzie niepoprawny. Aby to usunąć wystarczy tylko wykasować dodane entery.
Wszystkie certyfikaty będą miały postać podobną do załączonego poniżej przykładu:
-----BEGIN CERTIFICATE-----
MIIFXzCCBEegAwIBAgISAyprbpS2oaD+5PtIOGV3z1lcMA0GCSqGSIb3DQEBCwUA
MEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQD
ExpMZXQncyBFbmNyeXB0IEF1dGhvcml0eSBYMzAeFw0xOTExMDcxNTI5MzlaFw0y
MDAyMDUxNTI5MzlaMB4xHDAaBgNVBAMTE2xvZ2FuLnNlY3VyZXNpdGUucGwwggEi
MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC5QQXlVrmRNlNgvhqYfWkEHAAa
IB6W7YBVGowvaawFzFYuUzmG8ODoUKcgq9YdW2dF+c+I5LB7nlequISes5YGUwmP
gBlHoEZ8F0BZq9vH4mQ4k8+qRwypbKEl10vWYsg+c8pNpaqQQBm7ZNdcUQ0veDV/
Vq7SGLRrLAASVe7pJvZ/8PnIMBZsDRa8e6Ou72yQkKJqpcf9XPxeg25drgh1h5gd
Jzf84EAZ0ByNXmNwXH1SoVnY4SZh1pVoHFzCZjTZ1ALFpNszB/n8bQBvbkl/AgMB
AAGjrdhgsh54hhggJpMIICZTAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0lBBYwFAYIKw
RTBDMAgGBmeBDAECATA3BgsrBgEEAYLfEwEBATAoMCYGCCsGAQUFBwIBFhpodHRw
Oi8vY3BzLmxldHNlbmNyeXB0Lm9yZzCCAQUGCisGAQQB1nkCBAIEgfYEgfMA8QB2
APCVpFnyANGCQBAtL5OIjq1L/h1H45nh0DSmsKiqjrJzAAABbkazMYIAAAQDAEcw
RQIgcAqvGp+02q4A2d22VSMw5MoNI4L5G6LwxBqS40VOTAUCIQD4oKmRxSjQ9f/x
UnieszLGHEiZJsYdkeDiuI7AA8iMaeiVeJ9Qqbs78zN5O9XmK/HIeTvxkuZ0wsds
sdvsvvkSEFwseWSEgferEfgwef5fefwefgwwe65gfew5eg45ew55efEfgewfg4sd
DQYJKoZIhvcNAQELBQADggEBACwY++7+sJGS1jBS9yHPVR4Tg1lzoAqusiS/emJi
Zqkji48PgHA1FA64wa8P+jbnHELiRHg5gh9njex0+YEGf0DELK6fzzqcrIRchs6Y
uAhyvcX71Mft1NLgyve7E9vIvOl6lVuBKEF7yE9cikwdWamRuJvBK9FdK6Et3VvS
EztZ9KFq19BnugwG+fjqoIcTtcMJZd8j+pTvPhYQQDL+6F94Lx1t4KHWmuu8PaIf
neWe3h+BtwzCvBkSOZMECcLtEdAK5JkeTgAs9G45sXbDQN1CJ4HVkdehbMP/me1V
hkTk0EGtg5Ir8yK613ZLZRsYe1bRZ+xIVuRwTkANYezrGEc=
-----END CERTIFICATE-----
Aby zainstalować wygenerowany certyfikat zaloguj się do DirectAdmin i wybierz domenę dla której masz już certyfikat. Przejdź do sekcji Zaawansowane opcje i wybierz Certyfikaty SSL.
Zaznacz Wklej wygenerowany certyfikat i klucz. Skopiuj klucz prywatny oraz certyfikat i wklej je do okna dodawania certyfikatu. Musisz skopiować wygenerowane certyfikaty łącznie z —–BEGIN PRIVATE KEY—– aż do —–END PRIVATE KEY—–. Następnie przejdź do nowej linii klawiszem Enter i dodaj skopiowany certyfikat. Wszystko zapisz. Następnie przejdź do Kliknij tutaj aby wkleić Certyfikat root CA i tam wklej skopiowany CA Bundle (łącznie z—–BEGIN CERTIFICATE—– —–END CERTIFICATE—– ). Zapisz zmiany. Jeśli podczas zapisywania zmian nie pojawi się żaden komunikat o błędzie zapisu to wszystko przebiegło poprawnie.
Wymuszenie użycia szyfrowanej wersji domeny
Aby wymusić używanie szyfrowanej wersji strony WWW (https) można posłużyć się plikiem
.htaccess
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Utwórz plik .htacces z powyższą zawartością i wgraj go na FTP do swojego głównego konta domeny dla której wygenerowałeś certyfikat SSL. Nie przejmuj się jeżeli masz już plik o takiej nazwie. Można ich mieć wiele.
Powyższy plik może nie wystarczyć w przypadku używania różnych systemów CMS. W takim przypadku należy odpowiednio zmienić konfigurację używanego systemu CMS.