Aby uzyskać szczegółowe wyjaśnienie, jak działa wyzwanie Let's Encrypt DNS-01 (lub sprawdzanie poprawności DNS), przeczytaj artykuł zatytułowany Czym jest wyzwanie Let's Encrypt DNS-01 i jak go używać do zdobywania certyfikatów SSL.
W tym artykule pokażemy Ci, jak wykorzystać weryfikację Let’s Encrypt DNS, aby uzyskać certyfikat SSL dla swojej nazwy domeny za pomocą wtyczki Certbot i Certbot CloudFlare DNS.
Temat treści:
- Zarządzanie domeną za pomocą CloudFlare DNS
- Instalowanie wtyczki Certbot i Certbot CloudFlare na Ubuntu/Debian
- Instalowanie wtyczki Certbot i Certbot CloudFlare w Fedorze
- Instalowanie wtyczki Certbot i Certbot CloudFlare w strumieniu RHEL/AlmaLinux/Rocky Linux/CentOS
- Sprawdzanie, czy Certbot i wtyczka Certbot CloudFlare są poprawnie zainstalowane
- Generowanie tokena API CloudFlare
- Bezpieczne przechowywanie tokena API CloudFlare na komputerze/serwerze
- Generowanie certyfikatu SSL za pomocą walidacji DNS Certbot CloudFlare
- Lista certyfikatów Let's Encrypt SSL za pomocą Certbota
- Odnawianie certyfikatów Let’s Encrypt SSL za pomocą Certbota
- Wniosek
- Bibliografia
Zarządzanie domeną za pomocą CloudFlare DNS
Aby uzyskać certyfikat Let’s Encrypt SSL przy użyciu walidacji DNS CloudFlare, musisz mieć konto CloudFlare, a Twoja domena musi korzystać z CloudFlare DNS. Możesz utwórz konto CloudFlare za darmo a korzystanie z usługi CloudFlare DNS jest również bezpłatne.
Aby zarządzać swoją domeną za pomocą CloudFlare DNS, możesz wykonać jedną z następujących czynności:
- Zarejestruj swoją domenę w CloudFlare
- Przenieś swoją domenę do CloudFlare
- Zmień serwer nazw DNS swojej nazwy domeny na serwer nazw DNS CloudFlare z panelu rejestratora domeny
Nie musisz kupować domeny od CloudFlare ani przenosić domeny do CloudFlare, aby zarządzać nią za pomocą usługi CloudFlare DNS. Możesz po prostu zmienić serwer nazw swojej domeny na serwer nazw DNS CloudFlare z poziomu panelu rejestratora domeny (u którego kupiłeś domenę) i zarządzać swoją domeną z CloudFlare. Aby uzyskać więcej informacji na temat zmiany serwera nazw swojej domeny na serwer nazw DNS CloudFlare, przeczytaj ten artykuł.
Instalowanie wtyczki Certbot i Certbot CloudFlare na Ubuntu/Debian
Wtyczka Certbot i Certbot CloudFlare są dostępne w oficjalnym repozytorium pakietów Ubuntu/Debian. Możesz więc bardzo łatwo zainstalować je na Ubuntu/Debianie.
Najpierw zaktualizuj pamięć podręczną repozytorium pakietów APT za pomocą następującego polecenia:
$ sudo trafna aktualizacja
Aby zainstalować wtyczkę Certbot i Certbot CloudFlare DNS, uruchom następującą komendę:
$ sudo trafny zainstalować certbot python3-certbot-dns-cloudflare Aby potwierdzić instalację, naciśnij „Y”, a następnie naciśnij
Trwa instalowanie wtyczki Certbot i Certbot CloudFlare DNS. Ukończenie zajmuje trochę czasu.
W tym momencie należy zainstalować wtyczkę Certbot i Certbot CloudFlare DNS.
Instalowanie wtyczki Certbot i Certbot CloudFlare w Fedorze
Wtyczka Certbot i Certbot CloudFlare są dostępne w oficjalnym repozytorium pakietów Fedory i można je bardzo łatwo zainstalować w Fedorze.
Najpierw zaktualizuj bazę danych pakietów DNF za pomocą następującego polecenia:
$ sudo pamięć podręczna dnf
Aby zainstalować wtyczkę Certbot i Certbot CloudFlare DNS w Fedorze, uruchom następujące polecenie:
$ sudo dnf zainstalować certbot python3-certbot-dns-cloudflare Aby potwierdzić instalację, naciśnij „Y”, a następnie naciśnij
Trwa instalowanie wtyczki Certbot i Certbot CloudFlare DNS. Ukończenie zajmuje trochę czasu.
W tym momencie należy zainstalować wtyczkę Certbot i Certbot CloudFlare DNS w Fedorze.
Instalowanie wtyczki Certbot i Certbot CloudFlare w strumieniu RHEL/AlmaLinux/Rocky Linux/CentOS
Wtyczka Certbot CloudFlare DNS nie jest dostępna w oficjalnych repozytoriach pakietów RHEL/AlmaLinux/Rocky Linux/CentOS Stream. Wtyczka Certbot CloudFlare DNS dostępna jest w repozytorium pakietów EPEL. Możesz włączyć repozytorium pakietów EPEL na RHEL/AlmaLinux/Rocky Linux/CentOS Stream i zainstalować stamtąd wtyczkę Certbot CloudFlare DNS.
Po włączeniu repozytorium pakietów EPEL zaktualizuj pamięć podręczną bazy danych DNF za pomocą następującego polecenia:
$ sudo pamięć podręczna dnf
Następnie zainstaluj wtyczkę Certbot i Certbot CloudFlare DNS w systemie RHEL/AlmaLinux/Rocky Linux/CentOS Stream za pomocą następującego polecenia:
$ sudo dnf zainstalować certbot python3-certbot-dns-cloudflare Aby potwierdzić instalację, naciśnij „Y”, a następnie naciśnij
Trwa instalowanie wtyczki Certbot i Certbot CloudFlare DNS. Ukończenie zajmuje trochę czasu.
Aby zaakceptować klucz GPG repozytorium EPEL, naciśnij „T”, a następnie naciśnij
W tym momencie należy zainstalować wtyczkę Certbot i Certbot CloudFlare DNS.
Sprawdzanie, czy Certbot i wtyczka Certbot CloudFlare są poprawnie zainstalowane
Aby sprawdzić, czy na Twoim komputerze jest zainstalowany Certbot, uruchom następującą komendę:
$ certyfikatbot --wersjaJeżeli Certbot jest zainstalowany, polecenie powinno wydrukować numer wersji zainstalowanego Certbota na Twoim komputerze.
Jak widać, na naszym komputerze z Debianem mamy zainstalowany Certbot 2.1.0.
Aby sprawdzić, czy na Twoim komputerze jest zainstalowana wtyczka Certbot CloudFlare DNS, uruchom następującą komendę:
$ sudo wtyczki certbotaJeśli zainstalowana jest wtyczka Certbot CloudFlare DNS, na liście wtyczek powinieneś znaleźć opcję „dns-cloudflare”, jak zaznaczono na poniższym zrzucie ekranu:
Generowanie tokena API CloudFlare
Aby zweryfikować własność domeny, Certbot musi dodać rekord TXT w domenie zarządzanej przez serwer DNS CloudFlare. W tym celu Certbot potrzebuje dostępu do tokena CloudFlare API. Możesz utworzyć token API dla swojej domeny z poziomu panelu CloudFlare.
Najpierw zaloguj się na swoje konto CloudFlare. Następnie kliknij ikonę swojego profilu
> Mój profil z prawego górnego rogu strony.
Przejdź do sekcji „Tokeny API”. [1] i kliknij „Utwórz token” [2] .
Kliknij „Użyj szablonu” w sekcji „Edytuj DNS strefy”.
W sekcji „Pozwolenie” zezwól na uprawnienie „Edycja” do „Strefy DNS”, wybierając zaznaczone opcje z menu rozwijanych.
Jeśli zarządzasz wieloma domenami za pomocą CloudFlare, możesz zezwolić na modyfikację „Określonej strefy” w sekcji „Zasób strefy”. Zezwolenie tokenowi API na modyfikowanie tylko jednej strefy jest bezpieczniejsze niż zezwolenie tokenowi API na modyfikowanie wszystkich stref. Dzieje się tak dlatego, że jeśli token API zostanie naruszony, powierzchnia ataku będzie mniejsza i wyrządzone zostaną mniejsze szkody.
Jeśli chcesz używać jednego klucza API do modyfikowania wszystkich domen zarządzanych przez CloudFlare, wybierz „Wszystkie strefy” w sekcji „Zasób strefy”.
Po zakończeniu konfiguracji tokena API kliknij „Kontynuuj podsumowanie”.
Wyświetlone zostanie podsumowanie działań, które możesz wykonać w domenach zarządzanych przez CloudFlare za pomocą tokena API. Kliknij „Utwórz token”.
Należy utworzyć token API. Skopiuj token API w bezpieczne miejsce, aby go nie zgubić. Gdy opuścisz tę stronę, nie będziesz mógł ponownie znaleźć tego tokena API. Musisz wygenerować nowy token API na wypadek jego utraty:
LyPCAcOBygX1UMHvcsvBFo41aItm2cCVxnjloZj5
Bezpieczne przechowywanie tokena API CloudFlare na komputerze/serwerze
Certbot musi użyć tokena API CloudFlare, aby dodać nowy rekord TXT dla Twojej domeny na serwerze DNS CloudFlare. Musisz więc przechowywać token API CloudFlare na swoim komputerze/serwerze. Przechowywanie tokena API bez zapewnienia odpowiednich uprawnień dostępu do plików może umożliwić innym programom/użytkownikom dostęp do tokena API. Nie tego chcesz ze względów bezpieczeństwa. W tej sekcji pokażemy, jak bezpiecznie przechowywać token CloudFlare API w systemie plików.
Najpierw utwórz katalog (tj. ~/.secrets/certbot), w którym chcesz przechowywać klucz API CloudFlare, w następujący sposób:
$ mkdir -pw ~ / .tajniki / certyfikatbot
Utwórz plik „cloudflare.ini” w nowo utworzonym katalogu (tj. ~/.secrets/certbot) i otwórz go w swoim ulubionym edytorze tekstu (np. nano) w następujący sposób:
$ nano ~ / .tajniki / certyfikatbot / cloudflare.ini Wpisz następujący wiersz w pliku „cloudflare.ini” i naciśnij
Aby zapewnić odpowiednie uprawnienia dostępu do pliku „cloudflare.ini”, uruchom następujące polecenia, aby upewnić się, że tylko użytkownik root ma dostęp do odczytu i zapisu pliku:
$ sudo chowane korzeń:korzeń ~ / .tajniki / certyfikatbot / cloudflare.ini$ sudo chmod 06:00~ / .tajniki / certyfikatbot / cloudflare.ini
Jak widać, tylko użytkownik root ma uprawnienia do odczytu i zapisu pliku „cloudflare.ini”.
$ ls -lh ~ / .tajniki / certyfikatbot / cloudflare.ini
Inni użytkownicy próbujący odczytać plik „cloudflare.ini” otrzymają komunikat o błędzie „Odmowa uprawnień”.
$ kot ~ / .tajniki / certyfikatbot / cloudflare.ini
Generowanie certyfikatu SSL za pomocą walidacji DNS Certbot CloudFlare
Aby wygenerować certyfikat Let’s Encrypt SSL dla nazwy domeny z symbolem wieloznacznym „*.nodekite.com” przy użyciu sprawdzania poprawności DNS CloudFlare, uruchom komendę cerbot w następujący sposób:
$ sudo certbot z pewnością --dns-cloudflare --dns-cloudflare-poświadczenia ~ / .tajniki / certyfikatbot / cloudflare.ini -D * .nodekite.comAby wygenerować certyfikat Let’s Encrypt SSL dla nazw domen „nodekite.com” i „www.nodekite.com” using the CloudFlare DNS validation, use the “-d” option of the certbot command for each domain name as follows:
$ sudo certbot z pewnością --dns-cloudflare --dns-cloudflare-poświadczenia ~ / .tajniki / certyfikatbot / cloudflare.ini -D www.nodekite.com -D nodekite.comJeśli propagacja zmian DNS do popularnych serwerów nazw DNS na całym świecie zajmuje dużo czasu, możesz użyć opcji „–dns-cloudflare-propagation-sekundy” Certbota, aby ustawić liczbę sekund, przez które Certbot ma czekać przed sprawdzeniem DNS jest wykonywane.
$ sudo certbot z pewnością --dns-cloudflare --dns-cloudflare-poświadczenia ~ / .tajniki / certyfikatbot / cloudflare.ini --dns-cloudflare-propagation-sekundy 60 -D * .nodekite.com Po uruchomieniu polecenia Certbot zostaniesz poproszony o wpisanie adresu e-mail. Wpisz swój adres e-mail i naciśnij
Naciśnij „Y”, a następnie naciśnij
Naciśnij „Y”, a następnie naciśnij
Wydawany jest certyfikat Let’s Encrypt SSL. Ukończenie zajmuje trochę czasu.
W tym momencie wystawiany jest certyfikat Let’s Encrypt SSL. Powinna zostać wyświetlona pełna ścieżka, w której zapisane są pliki certyfikatów SSL. Powinna być także wyświetlona data ważności certyfikatu SSL.
Lista certyfikatów Let's Encrypt SSL za pomocą Certbota
Możesz wyświetlić listę wszystkich certyfikatów Let’s Encrypt SSL, które wygenerowałeś za pomocą Certbota, za pomocą następującego polecenia:
$ sudo certyfikaty certbotaJak widać, na liście znajduje się wygenerowany certyfikat Let’s Encrypt SSL dla domeny „nodekite.com”. [1] . Dla witryny „nodekite.com” wydawany jest certyfikat SSL typu wildcard [2] Nazwa domeny. Data ważności certyfikatu to 2024-03-20 (ważny 89 dni) [3] . Tutaj wymieniona jest także ścieżka certyfikatu i klucza prywatnego [4] .
Certbot przechowuje wszystkie certyfikaty SSL, które wygenerowałeś dla swoich domen w katalogu „/etc/letsencrypt/live” w odpowiednim folderze.
$ sudo ls -Rh / itp / letsencrypt / na żywo /
Odnawianie certyfikatów Let’s Encrypt SSL za pomocą Certbota
Certbot automatycznie odnawia wszystkie certyfikaty Let’s Encrypt SSL, które wygenerowałeś przy użyciu walidacji DNS CloudFlare.
Aby sprawdzić, czy działa funkcja automatycznego odnawiania certyfikatów Let’s Encrypt SSL, uruchom następującą komendę:
$ sudo odnowienie certyfikatu bota --próbaAkcja automatycznego odnawiania jest symulowana dla każdego wygenerowanego przez Ciebie certyfikatu Let’s Encrypt SSL.
Jeśli testy wypadną pomyślnie, otrzymasz gratulacje. Pomyślny wynik testu oznacza, że certyfikaty SSL zostaną automatycznie odnowione przed ich wygaśnięciem. Nie będziesz musiał robić nic więcej.
Aby funkcja automatycznego odnawiania Certbot działała, zegar systemowy „cerbot.timer” musi być włączony i aktywny na Twoim komputerze/serwerze.
Możesz sprawdzić, czy zegar systemowy „cerbot.timer” jest włączony i aktywny za pomocą następującego polecenia:
$ sudo status systemctl certbot.timerJak widać, zegar systemowy „certbot.timer” jest włączony (uruchamia się automatycznie podczas uruchamiania) [1] i aktywny [2] . Certbot już po 11 minutach (zgodnie z poniższym zrzutem ekranu) sprawdza, czy istnieje potrzeba odnowienia dowolnego certyfikatu SSL (zgodnie z poniższym zrzutem ekranu) i odnawia certyfikaty SSL, które wkrótce wygasną [3] .
Aby ręcznie sprawdzić, czy którykolwiek certyfikat SSL wkrótce wygaśnie i odnowić wygasające certyfikaty SSL, uruchom następującą komendę:
$ sudo odnowienie certyfikatu botaW naszym przypadku żaden certyfikat SSL nie wygaśnie. Zatem Certbot nie podjął próby odnowienia żadnego certyfikatu SSL.
Aby zmusić Certbota do odnowienia certyfikatu SSL określonej domeny (powiedzmy *.nodekite.com), uruchom następującą komendę:
$ sudo certbot z pewnością --wymuś odnowienie -D * .nodekite.com Naciśnij „1” i naciśnij
Certyfikat SSL powinien zostać odnowiony.
Wniosek
Aby uzyskać certyfikat Let’s Encrypt SSL za pomocą walidacji DNS CloudFlare przy użyciu Certbota, potrzebujesz dostępu do tokena API CloudFlare. W tym artykule pokazaliśmy, jak utworzyć token API CloudFlare dla swojej domeny i bezpiecznie przechowywać go na komputerze/serwerze, aby w razie potrzeby móc uzyskać do niego dostęp za pomocą Certbota. Pokazaliśmy również, jak zainstalować Certbota i wtyczkę Certbot CloudFlare DNS na najpopularniejszych dystrybucjach Linuksa. Pokazaliśmy, jak wygenerować certyfikaty SSL typu Wildcard Let’s Encrypt oraz certyfikaty SSL dla pojedynczych domen przy użyciu walidacji DNS Certbot i CloudFlare. Na koniec pokazaliśmy, jak automatycznie i ręcznie odnawiać certyfikaty Let’s Encrypt SSL za pomocą Certbota.