Przejdz do tresci
Avanet

Utwórz certyfikat wieloznaczny Let's Encrypt

Certyfikat Let’s Encrypt Wildcard jest przydatny, jeśli kilka subdomen musi być zabezpieczonych wspólnym certyfikatem, na przykład app.example.com, vpn.example.com i portal.example.com. Może to być przydatne w przypadku Sophos ZTNA, odwrotnych serwerów proxy, środowisk testowych lub wielu wewnętrznych usług internetowych.

Ważne jest oczekiwanie: certyfikaty Let’s Encrypt są krótkotrwałe. Zaleta nie leży w perspektywie długoterminowej, ale w swobodnym wydawaniu i automatyzacji. Jeżeli certyfikat tworzony jest ręcznie przy użyciu wpisu DNS TXT, należy świadomie zaplanować jego późniejsze odnowienie.

Jeśli certyfikat ma zostać utworzony bezpośrednio na zaporze Sophos dla WAF, WebAdmin lub portali, zazwyczaj lepsza jest metoda wbudowana w firewall: Skonfiguruj certyfikaty Sophos Firewall Let’s Encrypt. W tym artykule opisano zewnętrzną trasę z symbolami wieloznacznymi w programie Certbot.

Kiedy certyfikat wieloznaczny ma sens

Certyfikat wieloznaczny obejmuje jeden poziom poniżej domeny. Zatem *.example.com pasuje do portal.example.com, ale nie automatycznie do samego example.com, ani też nie do a.b.example.com.

  • Wiele subdomen w tej samej strefie: Certyfikat Wildcard może uprościć administrację.
  • Tylko jedna usługa publiczna: pojedynczy certyfikat FQDN jest często czystszy.
  • Certyfikat powinien być używany w wielu systemach: Certyfikat wieloznaczny może być praktyczny, ale ściśle kontroluje dystrybucję kluczy.
  • Wymagane w pełni automatyczne odnowienie: Zaplanuj dostawcę DNS za pomocą wtyczki Certbot lub innego klienta ACME.
  • Sophos Firewall jest przeznaczony wyłącznie do zabezpieczania WAF/WebAdmin/Portali: Wbudowany firewall Let’s Encrypt sprawdź.

Certyfikat wieloznaczny sam w sobie nie stanowi korzyści w zakresie bezpieczeństwa. W rzeczywistości, jeśli ten sam klucz prywatny znajduje się w wielu systemach, ryzyko utraty klucza wzrasta. Należy zatem udokumentować, gdzie certyfikat został zaimportowany i kto zarządza kluczem prywatnym.

Wymagania

Do certyfikatu wieloznacznego potrzebujesz:

  • własna strefa domeny lub subdomeny
  • Dostęp do rekordów DNS TXT domeny
  • serwer Linux lub komputer administracyjny z Certbotem
  • Zezwolenie na uruchomienie Certbota z uprawnieniami roota
  • plan odnowienia, importu i przechowywania kluczy
  • Dostęp do systemu docelowego, np. Sophos Central ZTNA, odwrotnego proxy lub firewalla

Certyfikaty Wildcard są sprawdzane w ramach DNS-01 Challenge. Rekord TXT jest ustawiony w _acme-challenge.example.com. Let’s Encrypt sprawdza ten wpis DNS, a następnie wystawia certyfikat. Let’s Encrypt opisuje podstawowe typy wyzwań w Dokumentacja odpowiadająca.

Zainstaluj Certbota

Strona projektu Cerbota zaleca instalację poprzez Snap w wielu środowiskach Linux. W odpowiednim systemie Linux podstawowy proces wygląda następująco:

sudo snap install --classic certbot
sudo ln -s /snap/bin/certbot /usr/local/bin/certbot

Jeżeli Certbot został już zainstalowany poprzez apt, dnf lub inny pakiet, warto wcześniej sprawdzić, który Certbot jest faktycznie używany. W przeciwnym razie wiele równoległych ścieżek instalacji szybko doprowadzi do nieprawidłowych wersji lub nieoczekiwanych zadań odnawiania.

Utwórz ręcznie certyfikat wieloznaczny

W celu ręcznej weryfikacji DNS Certbota można uruchomić za pomocą --manual i --preferred-challenges dns. W przykładzie certyfikat powinien dotyczyć zarówno example.com, jak i *.example.com:

sudo certbot certonly --manual --preferred-challenges dns -d example.com -d '*.example.com'

Następnie Certbot wyświetla jedną lub więcej wartości TXT. Jeśli example.com i *.example.com są zamawiane jednocześnie, Certbot tworzy dwa oddzielne wyzwania DNS-01. Obie wartości TXT trzeba dodać jako osobne rekordy TXT pod _acme-challenge.example.com. Drugi rekord należy więc dodać dodatkowo, a nie zastępować nim pierwszego.

Dopiero gdy wszystkie wpisy DNS są widoczne globalnie, należy potwierdzić w Certbocie i kontynuować weryfikację.

Praktyczne sprawdzenie:

dig TXT _acme-challenge.example.com @1.1.1.1
  • z pewnością: Złóż wniosek lub odnów certyfikat bez jego instalowania.
  • --manual: Wartość DNS jest ustawiana ręcznie.
  • --preferred-challenges dns: Użyj wyzwania DNS-01.
  • -d example.com: Dodaj dodatkową domenę główną.
  • -d '*.example.com': Dołącz domenę z symbolami wieloznacznymi.

Domena główna i domena z symbolem wieloznacznym to osobne nazwy. Jeśli wymagane jest tylko *.example.com, samo example.com nie jest automatycznie uwzględniane. Jeśli obie nazwy są zamawiane jednocześnie, może być potrzebnych kilka rekordów TXT o tej samej nazwie. Jest to dozwolone w DNS i właśnie w tym miejscu walidacje często kończą się niepowodzeniem, ponieważ istniejąca wartość TXT zostaje przypadkowo zastąpiona.

Znajdź pliki certyfikatów

Po pomyślnym wydaniu pliki zazwyczaj znajdują się pod adresem:

/etc/letsencrypt/live/example.com/

Ważne pliki:

  • fullchain.pem: Certyfikat zawierający certyfikaty pośrednie.
  • cert.pem: tylko certyfikat serwera.
  • privkey.pem: klucz prywatny.
  • chain.pem: Certyfikaty pośrednie.

Wiele systemów docelowych wymaga fullchain.pem i privkey.pem. Niektóre maski importu wymagają osobnego certyfikatu i klucza, inne wymagają również łańcucha. Przed importem powinno być jasne, jakiego formatu oczekuje system docelowy.

⚠️ privkey.pem to klucz prywatny. Plik ten nie może znaleźć się w biletach, czatach, e-mailach ani w niezabezpieczonym magazynie. Każdy, kto posiada klucz prywatny, może niewłaściwie wykorzystać certyfikat.

Odnowienie planu

Metoda ręczna --manual jest łatwa w przypadku testów i indywidualnych działań, ale tylko częściowo nadaje się do certyfikatów produkcyjnych. Bez automatyzacji nowy rekord DNS TXT musi być ustawiony przy każdym odnowieniu.

Istnieją trzy czyste warianty do zastosowań produkcyjnych:

  • Wtyczka DNS dla dostawcy DNS: jeśli Certbot może ustawiać rekordy DNS poprzez API.
  • kolejny klient ACME z automatyzacją DNS: jeśli dostawca lub platforma jest lepiej obsługiwana.
  • ręczne odnowienie z kalendarzem i właścicielem: tylko do testów lub rzadko używanych certyfikatów.

Kiedy używany jest dostęp API DNS, poświadczenia API są szczególnie istotne. Token DNS powinien mieć możliwość zmiany tylko niezbędnej strefy i, jeśli to możliwe, tylko niezbędnych typów rekordów. Szeroki dostęp administratora domeny nie powinien być niechroniony na serwerze internetowym.

Test odnowienia jest zwykle sprawdzany za pomocą Certbota w następujący sposób:

sudo certbot renew --dry-run

W przypadku ręcznie tworzonych certyfikatów DNS ten test ma znaczenie tylko wtedy, gdy proces DNS jest również zautomatyzowany lub ręczne przechwytywanie działa prawidłowo.

Importuj do środowisk Sophos

Jeżeli certyfikat jest używany dla Sophos ZTNA, firewalla, odwrotnego proxy lub innego systemu powiązanego z Sophos, przed importem powinieneś sprawdzić następujące punkty:

  • Czy nazwa certyfikatu jest zgodna z publiczną nazwą hosta?
  • Czy oprócz symbolu wieloznacznego wymagana jest domena główna?
  • Czy system docelowy oczekuje fullchain.pem lub oddzielnych komponentów certyfikatu?
  • Czy klucz prywatny jest akceptowany, czy też należy go przekonwertować na inny format?
  • Czy istnieje udokumentowany proces kolejnego odnowienia?
  • Czy jest jasne, do jakich systemów zaimportowano ten sam certyfikat?

Jeśli chodzi tylko o WAF, WebAdmin lub portale w zaporze Sophos, proces wbudowanej zapory jest często prostszy, ponieważ tworzenie i odnawianie odbywa się bezpośrednio na zaporze. Jednak zewnętrzna trasa Certbot lub ACME pozostaje istotna w przypadku prawdziwych certyfikatów wieloznacznych.

Typowe błędy

  • Walidacja nie powiodła się: Rekord TXT nie jest jeszcze widoczny, nazwa strefy DNS jest nieprawidłowa albo jedna z kilku wartości TXT została nadpisana. dig TXT _acme-challenge.example.com @1.1.1.1 sprawdź.
  • Certyfikat nie dotyczy example.com: tylko *.example.com poprosił. Dodaj dodatkowo domenę główną za pomocą -d example.com.
  • Certyfikat nie dotyczy a.b.example.com: Symbol wieloznaczny obejmuje tylko jeden poziom subdomeny. zaplanuj własny certyfikat lub odpowiedni symbol wieloznaczny dla głębszej strefy.
  • Odnowienie nie działa automatycznie: ręczny sposób DNS bez automatyzacji. Sprawdź wtyczkę DNS lub innego klienta ACME.
  • Import nie powiódł się: zły plik lub format. fullchain.pem, cert.pem, privkey.pem i porównaj żądanie łańcucha.
  • Zagrożenie bezpieczeństwa ze względu na kopie kluczy: klucz prywatny znajduje się w wielu systemach. Miejsca przechowywania, dostępu i importu dokumentów.

Lista kontrolna

  • Ustawiono poziom domeny i subdomeny.
  • Celowo wybrana domena główna i symbol wieloznaczny.
  • Dostępny dostęp do DNS i pozwolenie na rekord TXT.
  • Certbot zainstalowany czysto.
  • Pomyślnie sprawdzono wyzwanie DNS-01.
  • Pliki certyfikatów i klucz prywatny są bezpiecznie przechowywane.
  • Znany jest system docelowy i wymagany format importu.
  • Odnowienie zaplanowane z automatyzacją właściciela, kalendarza lub DNS.
  • Stare certyfikaty i klucze są usuwane w sposób kontrolowany po pomyślnej konwersji.

Często zadawane pytania

Czy certyfikat z symbolem wieloznacznym ma zastosowanie do domeny głównej?

Nie. *.example.com nie ma automatycznego zastosowania do example.com. Jeżeli wymagane są oba nazwiska, w certyfikacie muszą się znaleźć obydwa nazwiska.

Dlaczego certyfikat wieloznaczny wymaga weryfikacji DNS?

Let’s Encrypt sprawdza certyfikaty z symbolami wieloznacznymi za pośrednictwem DNS-01. Sprawdza to, czy kontrolujesz strefę DNS domeny.

Czy możesz automatycznie odnowić ręczny certyfikat z symbolem wieloznacznym?

Czyść tylko wtedy, gdy krok DNS jest zautomatyzowany. Zwykle wymaga to wtyczki dostawcy DNS lub klienta ACME z dostępem API do dostawcy DNS.

Jakie pliki są potrzebne do importu?

Często wymagane są fullchain.pem i privkey.pem. W zależności od systemu docelowego, istotne może być również cert.pem lub chain.pem.

Czy certyfikat wieloznaczny jest bezpieczniejszy niż certyfikaty indywidualne?

Zasadniczo nie. Certyfikat z symbolem wieloznacznym jest wygodny pod względem administracyjnym, ale klucz prywatny chroni wiele nazw hostów. Dlatego też breloczek do kluczy należy szczególnie dokładnie sprawdzić.