Zmiana dostawcy hostingu lub przeniesienie strony na nowy serwer to głównie pliki, bazy danych i DNS, a o certyfikacie zwykle przypomina się w ostatniej chwili. Wtedy następuje przełączenie DNS i odwiedzający widzą ostrzeżenie o certyfikacie, albo wszystko wygląda dobrze, aż po kilku tygodniach odnowienie po cichu zawodzi, bo nowy serwer nigdy nie został przygotowany do odnawiania. Wiedza, jak przenieść certyfikat SSL na nowy serwer i czy w ogóle go przenosić, utrzymuje HTTPS przez całe przełączenie.

Dwa sposoby, by przenieść certyfikat SSL na nowy serwer

Są dwie opcje, a dla większości stron pierwsza jest prostsza.

  • Wystaw nowy certyfikat na nowym serwerze. Z urzędem certyfikacji ACME, takim jak Let's Encrypt, nowy serwer sam żąda certyfikatu i konfiguruje własne odnawianie. Nic nie jest kopiowane, a certyfikat starego serwera po prostu wygasa.
  • Przenieś posiadany certyfikat SSL. To droga dla płatnego certyfikatu z pozostałym czasem ważności albo gdy nowy serwer musi obsługiwać HTTPS, zanim zwaliduje domenę. Potrzebujesz trzech elementów: certyfikatu, łańcucha pośredniego i należącego do nich klucza prywatnego.

Certyfikat jest powiązany z nazwami domen, a nie z serwerem czy firmą hostingową, więc certyfikat SSL po zmianie hostingu jest nadal ważny, o ile przeniesiony zostanie jego klucz prywatny. Bez klucza certyfikat jest bezużyteczny i tu zawodzi większość transferów: klucz został na serwerze, który już wypowiedziano. Większość komercyjnych urzędów certyfikacji pozwala wystawić certyfikat ponownie z nowym kluczem w okresie ważności, więc jeśli stary klucz przepadł, sprawdź warunki swojego urzędu.

Obchodzenie się z kluczem prywatnym

Kopiuj klucz przez SSH lub SFTP, nigdy e-mailem ani czatem, i zostaw go czytelnym tylko dla roota i serwera WWW. Na serwerach Windows certyfikat i klucz zwykle podróżują razem w pliku PFX chronionym hasłem, który można wyeksportować tylko wtedy, gdy klucz oznaczono jako eksportowalny przy instalacji certyfikatu.

Problem przełączenia: walidacja, zanim DNS się zmieni

Wyzwanie HTTP-01 w ACME dowodzi kontroli nad domeną, pobierając plik przez port 80 z serwera, na który domena aktualnie wskazuje. Przed przełączeniem DNS jest to nadal stary serwer, więc nowy nie może w ten sposób dostać certyfikatu. Są trzy czyste rozwiązania:

  • Walidacja DNS-01. Klient dowodzi kontroli, tworząc rekord TXT, co działa niezależnie od miejsca hostowania strony. Automatyczne odnawianie wymaga wtedy dostępu API do dostawcy DNS i jest to jedyny sposób na certyfikat wildcard z Let's Encrypt.
  • Przekierowanie ścieżki wyzwania. Sprawdzanie HTTP-01 w Let's Encrypt podąża za przekierowaniami, więc stary serwer może w okresie przejściowym przekazywać żądania /.well-known/acme-challenge/ do nowego. Dokumentacja typów wyzwań podaje warunki.
  • Pomost z istniejącym certyfikatem. Skopiuj bieżący certyfikat i klucz na nowy serwer na pierwsze dni, a po przeniesieniu DNS przejdź na automatyczne wystawianie.

Lista kontrolna przed przełączeniem DNS

  • Wypisz każdą nazwę hosta. Domenę główną, www, subdomeny sklepu lub aplikacji, host poczty, adres panelu i każdy punkt końcowy API. Każda nazwa, na którą odpowiada nowy serwer, musi być na certyfikacie.
  • Obniż TTL DNS dzień lub dwa wcześniej, by przełączenie szybko się rozeszło i dało się je szybko odwrócić.
  • Sprawdź rekord CAA. Rekord CAA w DNS ogranicza, które urzędy certyfikacji mogą wystawiać certyfikaty dla domeny (RFC 8659). Jeśli nowy host wystawia certyfikaty przez inny urząd niż stary, wystawienie się nie uda, dopóki rekord na to nie pozwoli.
  • Przetestuj przez wpis w pliku hosts. Skieruj własny komputer na nowy serwer i załaduj stronę przez HTTPS, zanim zrobi to ktokolwiek inny.
  • Serwuj pełny łańcuch certyfikatów, a nie tylko certyfikat strony. Przeglądarki często radzą sobie z brakującym certyfikatem pośrednim; bramki płatności, klienci API i starsze urządzenia często nie.
  • Uszanuj HSTS. Jeśli stara strona wysyłała nagłówek HSTS, przeglądarki, które ją odwiedziły, odrzucą zwykły HTTP i nie pozwolą odwiedzającym przejść mimo błędów certyfikatu. Nowy serwer musi od pierwszej minuty serwować poprawny HTTPS.
  • Zostaw przekierowania do jednego skoku z dowolnego wariantu http lub www na końcowy adres HTTPS.

Poczta, panele i stary serwer

Strony dostają całą uwagę, ale serwery poczty też potrzebują ważnych certyfikatów dla SMTP i IMAP, a przeniesiony host poczty z certyfikatem samopodpisanym lub niepasującym wywołuje ostrzeżenia w każdej aplikacji pocztowej. To samo dotyczy strony logowania panelu hostingowego i webhooków, które dostawcy płatności lub wysyłki wysyłają do Twojej strony: wywołują adres HTTPS i rezygnują, jeśli certyfikat się nie waliduje.

Po zakończeniu przeniesienia usuń klucze prywatne ze starego serwera i zatrzymaj jego zadania odnawiania, które inaczej będą próbować i zawodzić. Jeśli stary host został włamany albo już go nie kontrolujesz, unieważnij stary certyfikat i wystaw nowy z nowym kluczem. Resztę przeniesienia, od plików po bazy danych i skrzynki, obejmuje nasza usługa migracji hostingu i baz danych.

Potwierdź odnawianie na nowym serwerze

Ostatni krok zapobiega kolejnej awarii. Uruchom próbne odnowienie, na przykład certbot renew --dry-run w Certbocie, potwierdź, że istnieje zaplanowany timer lub zadanie cron, i upewnij się, że nieudane odnowienie wywołuje alert. Certyfikaty publiczne mają obecnie ważność najwyżej 200 dni, a limit wciąż się skraca, jak wyjaśnia nasz przewodnik po certyfikatach SSL, więc odnawianie odbywa się kilka razy w roku i nie może zależeć od tego, czy ktoś pamięta. Jeśli do przeniesienia zatrudniasz usługę instalacji SSL lub usługę konfiguracji SSL, poproś, by ten test był częścią przekazania. W naszej pracy przy instalacji certyfikatów SSL odnawianie jest konfigurowane i testowane, z alertem na wypadek awarii.

Najczęściej zadawane pytania: przenieść certyfikat SSL na nowy serwer

Czy ten sam certyfikat SSL może działać na dwóch serwerach naraz?

Tak. Podczas migracji normalne jest, że stary i nowy serwer używają tego samego certyfikatu i klucza, a przy certyfikatach automatycznych każdy serwer może mieć też własny. Unikaj żądania identycznych certyfikatów w pętli podczas testów: Let's Encrypt zezwala na pięć certyfikatów dla dokładnie tego samego zestawu nazw w ciągu siedmiu dni, a jego środowisko staging służy do eksperymentów.

Czy muszę kupować nowy certyfikat przy zmianie firmy hostingowej?

Nie, o ile możesz przenieść klucz prywatny albo Twój urząd pozwala wystawić certyfikat ponownie. Wielu dostawców hostingu wystawia też automatyczne certyfikaty dla hostowanych stron, a wtedy płatnego certyfikatu po wygaśnięciu może w ogóle nie trzeba odnawiać.

Dlaczego po przeniesieniu strona pokazuje błąd certyfikatu tylko na niektórych urządzeniach?

Zwykle nowy serwer wysyła certyfikat strony bez łańcucha pośredniego albo certyfikatowi brakuje jednej z nazw hosta, których ludzie faktycznie używają, na przykład www. Zewnętrzny walidator TLS pokazuje oba problemy w minutę.

Przenosisz stronę, serwer poczty lub całe konto hostingowe? Nasza usługa instalacji i konfiguracji certyfikatów SSL sprawdza obecną konfigurację, instaluje i konfiguruje certyfikaty na Apache, Nginx, HAProxy, panelach hostingowych i serwerach poczty, porządkuje przekierowania i mieszaną zawartość oraz weryfikuje wynik, dla klientów w Long Beach i Los Angeles oraz zdalnie z dowolnego miejsca. Wyślij nam nazwę swojej domeny i datę planowanego przeniesienia.