W moim małym rankingu najważniejszych wydarzeń związanych z internetem w czołówce znajduje się powstanie usługi Let’s Encrypt, dzięki czemu certyfikaty SSL/TLS dla stron internetowych (połączenie szyfrowane HTTPS) stały się dostępne właściwie dla każdego zainteresowanego, i to za darmo. Nawet w przypadku hostingu współdzielonego jest to już coraz częściej dostępne (jako usługa, lub poprzez ręczną instalację certyfikatów w panelu). To, czego brakowało w przypadku niektórych stron/projektów, to tzw. certyfikatów Wildcard, czyli takich, które obejmują nie tylko domenę główną i wybrane subdomeny (np. www), ale wszystko – nawet to, co jeszcze nie istnieje… Kilka(naście) godzin temu to się zmieniło i certyfikaty Wildcard zawitały do Let’s Encrypt.

Let’s Encrypt, ACME v2 i certyfikaty Wildcard

Sam wprawdzie nie odczuwałem jakiegoś większego „niedoboru” związanego z brakiem certyfikatów typu Wildcard dostępnych w ramach Let’s Encrypt, to jednak czasem zdarzał mi się wdrażać jakiś projekt, w którym tego typu rozwiązanie (certyfikat Wildcard) był wymagany, albo – przynajmniej – bardzo pomocny. Do wczoraj jeszcze, w takich przypadkach nie miałem wyjścia, i korzystałem z komercyjnych certyfikatów tego typu, które nie dość, że są płatne (logiczne), to zazwyczaj ich koszt jest dużo wyższy niż standardowych – na domenę i jedną subdomenę (np. www). Wadą komercyjnych certyfikatów jest również to, że muszę pamiętać o ich ręcznym przedłużeniu, a w przypadku certyfikatów Let’s Encrypt wszystko za mnie robi skrypt.

Wczoraj wieczorem (naszego czasu) w serwisie Let’s Encrypt pojawiła się informacja o tum, że wraz z wdrożeniem usługi w nowej wersji (ACME v2) pojawiły się również certyfikaty typu Wildcard. Oczywiście bezpłatne.

Certyfikat Wildcard

Zanim przejdziemy do wdrożenia certyfikatów Wildcard, małe wyjaśnienie czym one są, dla osób, które pierwszy spotykają się z takim określeniem.

Certyfikat Wildcard, to specjalny rodzaj certyfikatu, który pozwala na wykorzystanie go w przypadku dowolnej liczby subdomen w obrębie naszej domeny. Standardowe certyfikaty zazwyczaj przypisujemy do domeny, i możemy do tego dodać jedną subodmenę, np. www:

  • webinsider.pl
  • www.webinsider.pl

W przypadku certyfikatów typu Wildcard generujemy je wprawdzie dla konkretnej domeny, ale działają one również dla dowolnych subdomen, i to bez potrzeby ich definiowania na etapie tworzenia certyfikatu, np.:

  • webinsider.pl
  • www.webinsider.pl
  • outlink.webinsider.pl
  • piwik.webinsider.pl
  • cdn.webinsider.pl
  • mail.webinsider.pl
  • cokolwiek.webinsider.pl

W przypadku standardowego certyfikatu (domena i subdomena www) strona WebInsider.pl jest wyświetlana w przeglądarkach w ramach połączenia szyfrowanego, czyli bezpiecznego (HTTPS). Ale w momencie, gdy wskażemy losową subdomenę, dla której nie ma wystawionego i skonfigurowanego oddzielnego certyfikatu, zamiast strony pojawi się ostrzeżenie, że połączenie nie jest bezpieczne:

Jest to jak najbardziej prawidłowa reakcja przeglądarki, bo w powyższym przykładzie wykorzystywany certyfikat został wystawiony dla domeny webinsider.pl i subdomeny www, czyli www. webisndier.pl, i odwołanie do każdej innej subdomeny (i domeny) przy tym certyfikacie spowoduje wyświetlenie powyższego błędu.

Ale wystarczy zamiast certyfikatu domena + jedna subdomena podstawić certyfikat Wildcard wystawiony dla domeny WebInsider.pl (*.webisndier.pl) by połączenie było już bezpieczne, choć subdomena test.webinsider.pl nie była zdefiniowana podczas tworzenia tego certyfikatu:

I to chyba tyle jeśli chodzi o teorię, pora na praktykę, czyli wdrożenie certyfikatu Let’s Encrypt Wildcard na serwerze…

Wdrożenie certyfikatu Let’s Encrypt Wildcard

Z racji tego, że o instalacji i konfiguracji certyfikatów Let’s Encrypt już kiedyś pisałem, to zdecydowanie zalecam lekturę tego artykułu, bo tutaj skoncentruję się tylko na różnicach, które wynikają z wdrożenia ACME v2, i certyfikatów Let’s Encrypt.

W przypadku standardowych certyfikatów (dla wskazanych domen i subdomen) polecenie generowania certyfikatu będzie wyglądać np. tak:

sudo letsencrypt certonly -a webroot -w /var/www/webinsider.pl/ -d webinsider.pl -d www.webinsider.pl

Teoretycznie w ten sposób można by wygenerować certyfikat Wildcard:

sudo letsencrypt certonly -a webroot -w /var/www/webinsider.pl/public_html/ -d *.webinsider.pl

Teoretycznie, bo – przynajmniej na obecną chwilę – ACME v1 nie wspiera certyfikatów Wildcard, i zakończy się to komunikatem błędu:

The currently selected ACME CA endpoint does not support issuing wildcard certificates.

Dlatego, by w tej chwili wygenerować certyfikat Let’s Encrypt typu Wildcard należy posłużyć się poleceniem:

sudo letsencrypt certonly --agree-tos --manual --preferred-challenges dns --server https://acme-v02.api.letsencrypt.org/directory -d '*.webinsider.pl'

W tym momencie korzystamy z nowego API (acme-v02), które wspiera generowanie certyfikatów tego typu. Musimy też w procesie weryfikacji – w trybie manualnym – zgodzić się na na logowanie adresu IP serwera (jest to jedno z  pytań w trakcie procesu generowania certyfikatu).

Dodatkowo generowanie certyfikatu typu Wildcard wiąże się z tym, że musimy udowodnić swoje uprawnienia do całej domeny, a możemy tego dokonać poprzez weryfikację uprawnień do modyfikowania strefy DNS domeny:

Oznacza to, że musimy dla naszej domeny dodać nowy rekord TXT, o wskazanej wartości, np.:

_acme-challenge.webinsider.pl IN TXT "RCQtDj1T-kJSJ3Yqt_lgv_sHiWv9FPbiqBT6KYdtpJk"

To może być w niektórych przypadkach najtrudniejszy (najdłuższy) krok, bo nie zawsze rekordy DNS w naszej strefie są aktualizowane na bieżąco, a każde kolejne wywołanie procesu generowania certyfikatu spowoduje wygenerowanie nowej wartości do wpisania w rekordzie TXT.

Z racji tego, że ja w przypadku swoich domen korzystam z usługi CloudFlare, m.in. właśnie do zarządzania wpisami DNS, to u mnie cała procedura trwałą poniżej minuty. Dzięki czemu już po chwili mogłem zobaczyć komunikat potwierdzający wygenerowanie certyfikatu Wildcard:

W tym momencie można usunąć rekord TXT z DNSów, bo przy automatycznym odnawianiu certyfikatu nie będzie on już wykorzystywany, a przy ponownym, ręcznym generowaniu i tak zostanie wygenerowana nowa wartość dla tego rekordu.

Na koniec wystarczyło zmienić konfigurację vHosta dla domeny WebInsider.pl, i certyfikat SSL typu Wildcard od Let’s Encrypt był prawidłowo rozpoznawany przez przeglądarki:

Przydatne, zwłaszcza w sytuacji, gdy na jednym serwerze mamy zainstalowane różne usługi działające na własnych subdomenach, bo dzięki temu nie tylko wystarczy jeden certyfikat zamiast kilku, ale również proces uruchomienia dodatkowej usługi na kolejnej subdomenie jest szybszy i wygodniejszy, bo odpada generowanie i konfigurowanie kolejnego certyfikatu…

Potrzebujesz profesjonalnej pomocy? Skontaktuj się z nami!
Spodobał Ci się artykuł? Zapisz się do naszego Newslettera - ZERO SPAMu, same konkrety, oraz dostęp do dodatkowych materiałów przeznaczonych dla subskrybentów!
Na podany adres e-mail otrzymasz od nas wiadomość e-mail, w której znajdziesz link do potwierdzenia subskrypcji naszego Newslettera. Dzięki temu mamy pewność, że nikt nie dodał Twojego adresu przez przypadek. Jeśli wiadomość nie przyjdzie w ciągu najbliższej godziny (zazwyczaj jest to maksymalnie kilka minut) sprawdź folder SPAM.
Monika ćwiczy przed kongresem ko..., ale zapisała się do Newslettera WebInsider.pl, choć... i tak nic nie widzi
WebInsider poleca księgowość wFirma
WebInsider korzysta z VPSa w HitMe.pl
WebInsider poleca VPSy DigitalOcean
WebInsider poleca serwis Vindicat
Napisz komentarz
wipl_napisz-komentarz_01Jeśli informacje zawarte na tej stronie okazały się pomocne, możesz nam podziękować zostawiając poniżej swój komentarz.

W tej formie możesz również zadać dodatkowe pytania dotyczące wpisu, na które – w miarę możliwości – spróbujemy Ci odpowiedzieć.
Linki partnerskie
Niektóre z linków na tej stronie to tzw. „linki partnerskie”, co oznacza, że jeśli klikniesz na link i dokonasz wymaganej akcji (np. zakup/rejestracja) możemy otrzymać za to prowizję. Pamiętaj, że polecamy tylko te produkty i usługi, z których sami korzystamy, i uważamy, że są tego na prawdę warte… :-)
Znaki towarowe i nazwy marek
W niektórych wpisach (oraz innych miejscach na stronie) mogą być przedstawione/użyte znaki towarowe i/lub nazwy marek, które stanowią własność intelektualną tych podmiotów, a zostały użyte wyłącznie w celach informacyjnych.
Monika ćwiczy przed kongresem ko..., ale dzięki motywowa Divi od Elegant Themes chyba nawet ona da radę...