Naciśnij ESC, aby zamknąć

Synology & Cloudflare: Jak skonfigurować certyfikat Wildcard SSL

Spis treści

Cześć!

W dzisiejszych czasach bezpieczeństwo i prywatność online są kluczowymi aspektami prowadzenia stron internetowych i zarządzania danymi. Certyfikaty SSL odgrywają istotną rolę w zapewnieniu szyfrowania komunikacji między użytkownikami a serwerami. Co więcej, Synology, jako jedno z najpopularniejszych rozwiązań NAS, oferuje elastyczność i możliwość zaawansowanej konfiguracji, co czyni go idealnym narzędziem do implementacji takich certyfikatów.

W tym artykule pokażę, jak skonfigurować certyfikat Wildcard SSL na serwerze Synology przy użyciu Cloudflare i protokołu ACME. Dzięki temu przewodnikowi dowiesz się, jak skutecznie zabezpieczyć swoją domenę oraz wszystkie jej subdomeny, korzystając z automatyzacji oferowanej przez narzędzie acme.sh.

Wstęp

Co to Synology?

Synology to firma specjalizująca się w produkcji sprzętu sieciowego oraz oprogramowania do przechowywania danych i zarządzania nimi. Ich główne produkty to serwery NAS (Network Attached Storage), które oferują szeroki zakres funkcji, takich jak przechowywanie plików, udostępnianie multimediów, tworzenie kopii zapasowych, a także hosting usług sieciowych.

Dzięki swojej wszechstronności, urządzenia Synology znajdują zastosowanie zarówno w domowych sieciach, gdzie pełnią rolę centralnego magazynu danych i serwera multimedialnego, jak i w firmach, gdzie służą do przechowywania i udostępniania plików oraz uruchamiania różnorodnych aplikacji biznesowych, takich jak serwery poczty elektronicznej, serwery plików, czy platformy do zarządzania projektami.

Czym jest Cloudflare?

Cloudflare, logo

Cloudflare to globalna firma technologiczna oferująca zaawansowane usługi przyspieszania i zabezpieczania stron internetowych. Przede wszystkim, zapewnia CDN, ochronę przed atakami DDoS, zaawansowane zarządzanie DNS, SSL/TLS, firewall aplikacji webowych (WAF) oraz optymalizację wydajności. Dzięki rozproszonej sieci serwerów, Cloudflare skraca czas ładowania stron, chroni je przed zagrożeniami i zapewnia szybki oraz bezpieczny dostęp do treści. W rezultacie, poprawia doświadczenie użytkowników na całym świecie, jednocześnie zwiększając bezpieczeństwo i wydajność stron internetowych.

Usługi Cloudflare są łatwe w integracji i oferują zaawansowane funkcje analityczne. Automatyzują procesy zabezpieczania i przyspieszania stron, co jest szczególnie korzystne dla firm każdej wielkości. Cloudflare umożliwia również łatwe wdrażanie certyfikatów SSL/TLS, zapewniając bezpieczną komunikację. Dzięki temu jest popularnym wyborem dla właścicieli stron i administratorów sieci.

Przygotowanie

W celu przygotowania poradnika, przyjmiemy ustaloną nazwę domeny oraz określone nazwy konfiguracyjne, przedstawione poniżej. Dla dostosowania konfiguracji do własnych potrzeb, należy zastosować ustawienia według indywidualnych wymagań.

  • Pełna nazwa domeny (FQDN) Synology DSM: https://dsm.xyz.com,

Czym jest Wildcard SSL?

Wildcard SSL, Example iconWildcard SSL to typ certyfikatu SSL/TLS, który pozwala zabezpieczyć nie tylko jedną domenę, ale także wszystkie jej subdomeny za pomocą jednego certyfikatu. Jest to niezwykle wygodne rozwiązanie dla firm i organizacji, które posiadają wiele subdomen i chcą zapewnić im ochronę przy minimalnym zarządzaniu certyfikatami.

Przykład użycia

Załóżmy, że posiadasz stronę internetową lovecats.com i chcesz zabezpieczyć także jej subdomeny, takie jak blog.lovecats.com itp. Zamiast wydawać osobne certyfikaty dla każdej z tych subdomen, możesz zainstalować jeden certyfikat Wildcard SSL dla *.lovecats.com, który automatycznie obejmie wszystkie istniejące i przyszłe subdomeny.

Jak działa Wildcard SSL?

Wildcard SSL wykorzystuje specjalny znak „*” (gwiazdkę) w nazwie domeny podczas generowania certyfikatu. Oznacza to, że certyfikat jest ważny dla każdej subdomeny na danym poziomie. Na przykład, certyfikat dla *.lovecats.com będzie chronił www.lovecats.com itp.

Wildcard SSL jest szczególnie przydatny dla dynamicznych i rozwijających się stron internetowych, gdzie nowe subdomeny mogą być dodawane regularnie. Dzięki temu rozwiązaniu, każda nowa subdomena jest automatycznie objęta ochroną bez potrzeby wydawania nowych certyfikatów.

Czym jest ACME?

ACME Logo

ACME (Automatic Certificate Management Environment) to protokół opracowany przez Internet Security Research Group (ISRG) i powszechnie używany przez Let’s Encrypt do automatyzacji zarządzania certyfikatami SSL/TLS. Umożliwia on automatyczne uzyskiwanie, instalowanie i odnawianie certyfikatów SSL, eliminując potrzebę ręcznej interwencji administratora. Dzięki temu proces ten staje się znacznie prostszy, szybszy i mniej podatny na błędy ludzkie.

ACME jest niezwykle przydatny dla administratorów serwerów, którzy chcą zapewnić, że ich strony internetowe są zawsze chronione przez aktualne certyfikaty SSL/TLS. Ponadto, automatyzacja tego procesu pozwala zaoszczędzić czas i zasoby, jednocześnie zwiększając bezpieczeństwo i niezawodność witryn.

Dodatkowo, korzystanie z ACME przyczynia się do szybszego wdrażania certyfikatów na dużą skalę, co jest szczególnie ważne dla stron o wysokim ruchu. Co więcej, dzięki ACME, nawet osoby z ograniczoną wiedzą techniczną mogą łatwo zarządzać bezpieczeństwem swojej strony internetowej.

Ograniczenia

Odkąd wprowadzono obsługę Let’s Encrypt na urządzeniach Synology, wielu użytkowników korzysta z możliwości uzyskania bezpłatnych certyfikatów SSL. Jednakże, istnieją pewne ograniczenia, które warto wziąć pod uwagę.

  • Wiele osób unika wystawiania portów 80/443 do Internetu, co wymaga otwarcia tych portów na routerze.
  • Alternatywą jest wykorzystanie protokołu DNS-01.
  • Niestety, aktualna implementacja Let’s Encrypt na urządzeniach Synology obsługuje tylko metodę HTTP-01, co wymaga wystawienia portu 80 do Internetu.
  • Dodatkowo, jeśli domena twojego NAS ma ustawiony rekord IPv6 AAAA, implementacja Let’s Encrypt na urządzeniach Synology nie powiedzie się pomyślnie.

Mimo tych ograniczeń, istnieje sposób na ich obejście. Możemy uzyskać dostęp do NAS za pomocą SSH i skonfigurować go do automatycznego odnawiania certyfikatów, omijając panel GUI.

W tym przewodniku skorzystamy z protokołu DNS-01 z wykorzystaniem API Cloudflare, gdzie hostujemy naszą domenę. Dzięki temu możemy zarządzać certyfikatami bez konieczności wystawiania portów na routerze. Co więcej, ten sposób jest bezpieczniejszy i bardziej elastyczny, zwłaszcza dla tych, którzy nie chcą otwierać dodatkowych portów w swojej sieci.

Krok 1 – Konfiguracja w Synology

SSH

Jeśli nie masz jeszcze włączonego SSH na swoim Synology, wykonaj poniższe kroki:

  • Przejdź do Panelu Sterowania, a następnie w sekcji Łączność wybierz Terminal i SNMP;

  • Kliknij Włącz usługę SSH i ustaw dowolny wysoki port np. 45000.

Synology SSH

  • Zapisz ustawienia i przejdź do zalogowania się po SSH do naszego Synology.

Pobranie plików na serwer

Na systemy operacyjne Microsoft Windows polecam PuTTY, z kolei na systemy operacyjne Apple MacOS polecam Termius.

  • Osobiście korzystam z MacOS, stąd posłużę się Termiusem.
  • Zaloguj się jako super użytkownik: Uruchom terminal i wpisz polecenie sudo su, aby przełączyć się na konto super użytkownika.
sudo su
  • Przejdź do katalogu domowego: Wpisz cd ~, aby przejść do katalogu domowego bieżącego użytkownika.
cd ~
  • Pobierz paczkę acme.sh: Użyj polecenia wget do pobrania paczki acme.sh. Wpisz:
wget https://github.com/acmesh-official/acme.sh/archive/master.tar.gz
  • Rozpakuj pobraną paczkę: Użyj polecenia tar do rozpakowania pobranej paczki. Wpisz:
tar xvf master.tar.gz
  • Przejdź do katalogu acme.sh-master: Wejdź do katalogu acme.sh-master, który został utworzony po rozpakowaniu paczki. Wpisz:
cd acme.sh-master/
  • Zainstaluj acme.sh: Wykonaj instalację acme.sh, określając ścieżkę instalacji i podając adres e-mail. Wpisz:
./acme.sh --install --nocron --home /usr/local/share/acme.sh --accountemail "[email protected]"
  • Załaduj profil użytkownika: Aby zapewnić, że zmiany wprowadzone podczas instalacji zostaną uwzględnione, załaduj profil użytkownika. Wpisz:
source ~/.profile
  • Nie zamykaj terminala oraz nie rozłączaj połączenia SSH z Synology, powrócimy do niego za chwilę.

Krok 2 – Konfiguracja DNS w Cloudflare i uzyskanie tokenu API

Upewnij się, że Twoja domena jest zarejestrowana i zarządzana przez Cloudflare. Jeśli jeszcze tego nie zrobiłeś, dodaj domenę do Cloudflare i skonfiguruj jej obsługę. Następnie, skonfiguruj DNS, aby ACME mógł używać wygenerowanego tokenu API w Cloudflare do przeprowadzenia wyzwania DNS podczas wydawania certyfikatu Let’s Encrypt SSL.

  • Przejdź do menu tworzenia Tokena API użytkownika w Cloudflare:
    • Przejdź do strony głównej i wybierz nazwę swojej domeny,
    • W interfejsie zarządzania domeną (karta Overview), po prawej stronie wyszukaj i kliknij Get your API Token,

Cloudflare, API

    • W wykazie twoich Tokenów API, kliknij Create Token,
    • W menu tworzenia Tokena API, kliknij na Get Started przy Create Custom Token w sekcji Custom Token.

Cloudflare, Create token

    • Po przejściu do tworzenia Custom Tokena API, wypełnij formularz następującymi wartościami:
      • Token name: np. acme-xyzcom,
      • Permissions: Ustaw następująco Zone | DNS | Edit,
      • Zone Resources: Ustaw następująco Include | Specific zone | Twoja domena xyz.com,
      • Client IP Address Filtering: pozostaw bez uzupełniania,
      • TTL: pozostaw bez uzupełniania.

Cloudflare, User API Tokens Create

    • Podczas ostatniego etapu pojawi się podsumowanie tworzenia Tokena API. Jeśli wszystkie informacje są poprawne, kliknij Create Token.
    • Po utworzeniu Tokena API otrzymasz szczegółowe informacje o nim, wraz z opcją przetestowania go w terminalu.

Cloudflare, Created API Token

  • Skopiowany Token API zapisz w notatniku, ponieważ będzie Ci potrzebny podczas konfiguracji certyfikatu SSL w ACME.

Eksport API do ACME

  • Ustaw zmienne środowiskowe dla Cloudflare: Wyeksportuj swoje poufne dane, takie jak token Cloudflare oraz adres e-mail, jako zmienne środowiskowe. Wpisz:
    • Upewnij się, że zastępujesz API_TOKEN swoim faktycznym prywatnym tokenem Cloudflare oraz [email protected] swoim adresem e-mail przypisanym do konta Cloudflare.
export CF_Token="API_TOKEN"
export CF_Email="[email protected]"

Ustawienie tych zmiennych środowiskowych umożliwi acme.sh uwierzytelnienie się przy użyciu Twojego konta Cloudflare podczas procesu uzyskiwania certyfikatu SSL.

Krok 3 – Tworzenie certyfikatu

Teraz nadszedł czas na utworzenie certyfikatu dla Twojej domeny. Poniższe polecenia spowodują utworzenie certyfikatu SSL dla Twojej domeny za pomocą usługi Let’s Encrypt, przy użyciu metody weryfikacji DNS-01 z użyciem usługi Cloudflare. Po zakończeniu tego procesu będziesz mógł uzyskać ważny certyfikat SSL dla swojej domeny.

  • Przejście do katalogu acme.sh: Wciąż pracujemy w tym samym terminalu, w którym wykonaliśmy wcześniejsze kroki. Przejdź do katalogu, w którym zainstalowano acme.sh. Wpisz:
cd /usr/local/share/acme.sh
  • Ustawienie zmiennych domeny i DNS: Zdefiniuj zmienne dla Twojej domeny i usługi DNS, którą używasz (w tym przypadku Cloudflare). Wpisz:
export CERT_DOMAIN="*.where-is-my-money.pl"
export CERT_DNS="dns_cf"
  • Wygenerowanie certyfikatu: Teraz wykonaj polecenie acme.sh, aby wygenerować certyfikat dla Twojej domeny. Wpisz:
./acme.sh --issue --server letsencrypt --home . -d "$CERT_DOMAIN" --dns "$CERT_DNS"

Krok 4 – Wdrożenie certyfikatu

Aby użyć istniejącego użytkownika admina, zaleca się utworzenie osobnego konta administratora dedykowanego wyłącznie do tych operacji. Warto zadbać o to, aby hasło do tego konta było silne i skomplikowane, co zwiększy poziom bezpieczeństwa. Unikaj korzystania z tego samego konta admina, które używasz do innych operacji, ze względów bezpieczeństwa.

Poniżej znajdziesz kroki do wykonania:

  • Utwórz osobne konto administratora: Przejdź do panelu sterowania Synology i utwórz nowe konto administratora, które będzie przeznaczone tylko do operacji związanych z certyfikatami SSL. Upewnij się, że nazwa użytkownika jest unikalna (np. serviceaccount-ssl-acme), a hasło jest skomplikowane i trudne do odgadnięcia.
  • Ustaw zmienne środowiskowe: Po utworzeniu konta administratora, wyeksportuj jego nazwę użytkownika i hasło jako zmienne środowiskowe. Możesz to zrobić w terminalu, wpisując:
export SYNO_USERNAME='user_admin_account_for_acme'
export SYNO_PASSWORD='babajaga-never-u2se-easy-pas3sword'
  • Ustawianie zmiennych dotyczących połączenia: Zdefiniuj użycie HTTPS oraz wprowadź aktualny numer portu, którego używasz do logowania się do panelu administracyjnego Synology. W tym celu wpisz:
    • Ponadto, jeśli korzystasz z domyślnego numeru portu, warto rozważyć jego zmianę ze względów bezpieczeństwa. Zmiana domyślnego numeru portu może pomóc w zabezpieczeniu dostępu do panelu administracyjnego.
export SYNO_LOCAL_HOSTNAME=1
export SYNO_SCHEME="https"
export SYNO_PORT="5001"
export SYNO_CREATE=1
  • Uruchom wdrażanie certyfikatu: Wpisz poniższą komendę.
./acme.sh --deploy --insecure --home . -d "$CERT_DOMAIN" --deploy-hook synology_dsm
  • Gotowe! Poczekaj chwilę, aż konfiguracja zostanie zapisana. 🚀

Krok 5 – Ustawienie automatycznego odnawiania certyfikatu

Aby zapewnić ciągłość ważności certyfikatu SSL, zaleca się skonfigurowanie automatycznego odnawiania.

W systemie Synology możesz skorzystać z wbudowanych narzędzi, aby uruchomić skrypt acme.sh w regularnych odstępach czasu. W tym celu możesz utworzyć harmonogram zadania za pomocą panelu sterowania DSM, który będzie wykonywał skrypt automatycznego odnawiania certyfikatu.

  • Przejdź do Panelu sterowania, a następnie zjedź na dół aby odnaleźć Harmonogram zadań.
  • Kliknij Utwórz i wybierz Uruchamiane zadanieSkrypt zdefiniowany przez użytkownika,

Synology, Panel sterowania Harmonogram zadań

  • W zakładce Edit task – General wprowadź następujące wartości:
    • Task: renew certificate ssl,
    • User: root,
  • W zakładce Edit task – Schedule wprowadź następujące wartości:
    • Run on the following date: dzisiejsza data, Repeat monthly
  • W zakładce Edit task – Task Settings wprowadź następujące wartości:
    • Prześlij szczegóły uruchomienia w wiadomości email: Zaznacz i wprowadź swój adres mailowy,
    • Prześlij szczegóły uruchomienia tylko, gdy skrypt zostanie nieoczekiwanie zakończony: Zaznacz,
    • Uruchom polecenie: Wklej poniższy skrypt w edytor tekstu:
./acme.sh-master/acme.sh --cron --home /usr/local/share/acme.sh
  • Po wprowadzeniu tych ustawień, kliknij OK, aby zapisać i aktywować nowe zaplanowane zadanie.
  • Teraz nasz skrypt będzie działał automatycznie co miesiąc.

Krok 6 – Ustawienie certyfikatów dla poszczególnych aplikacji w Synology DSM

Teraz, gdy już posiadasz ważny certyfikat SSL, możesz go przypisać do poszczególnych aplikacji w systemie Synology DSM, aby zapewnić bezpieczne połączenia. Oto jak to zrobić:

  • Zaloguj się do DSM na swoim urządzeniu Synology.
  • Przejdź do Panelu Sterownia, następnie do zakładki Security – Certificate.

Synology DSM, Security panel

  • Kliknij w Settings i przejdź do karty ustawień. Wyświetlone zostana wszystkie usługi/aplikacje i odpowiadające im aplikacje.
  • Kliknij bieżący certyfikat docelowej usługi i wybierz odpowiedni certyfikat z rozwijanego menu.
  • Po skonfigurowaniu certyfikatów, kliknij OK.Synology DSM, Security Certificates applications
  • Gotowe! 🚀

Jeśli masz dodatkowe pytania dotyczące konfiguracji, śmiało zostaw komentarz pod tym artykułem lub skontaktuj się ze mną bezpośrednio. Chętnie odpowiem na wszelkie wątpliwości i pomogę rozwiązać ewentualne problemy. Twoje pytania mogą pomóc w ulepszeniu tego poradnika dla innych użytkowników.

Dodatkowe źródła i informacje

Dziękuję, że dotrwałeś do tego miejsca. W celu dalszego zgłębienia tematu i uzyskania szczegółowych informacji, polecam sprawdzenie poniższych linków. Są one wartościowymi źródłami, które zostały wykorzystane podczas opracowywania tego poradnika.

Filip Chochół

Filip Chochol runs two blogs: personal “chochol.io” and together with his girlfriend “Warsaw Travelers” about travel. He specializes in IT resource management and technical support, and has been active in the field of cyber security awareness for almost two years. A proponent of open-source technologies, he previously worked in the film and television industry in the camera division (2013-2021). After hours, he develops interests in smart homes and networking.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *


This site uses Akismet to reduce spam. Learn how your comment data is processed.