Rozwiązywanie problemów z certyfikatami SSL i ServBay CA
Ten dokument prezentuje najczęstsze problemy i metody rozwiązywania związane z certyfikatami SSL oraz ServBay CA w lokalnym środowisku deweloperskim ServBay.
Dlaczego po otwarciu przeglądarki pojawia się komunikat o niezaufanym certyfikacie SSL?
Gdy próbujesz otworzyć hostowaną przez ServBay lokalną stronę internetową i widzisz ostrzeżenie podobne do poniższych, oznacza to zazwyczaj problem z konfiguracją certyfikatu SSL:
- Chrome / Edge:
Your connection is not private
(Twoje połączenie nie jest prywatne)- Kod błędu
NET::ERR_CERT_AUTHORITY_INVALID
- Kod błędu
NET::ERR_CERT_COMMON_NAME_INVALID
(rzadziej spotykany, pojawia się, gdy certyfikat nie pasuje do domeny)
- Firefox:
Warning: Potential Security Risk Ahead
(Ostrzeżenie: Potencjalne zagrożenie bezpieczeństwa)- Po kliknięciu "Zaawansowane" możesz zobaczyć kod błędu
SEC_ERROR_UNKNOWN_ISSUER
- Kod błędu
SSL_ERROR_BAD_CERT_DOMAIN
(gdy certyfikat nie pasuje do domeny)
- Safari:
This Connection Is Not Private
(Połączenie nie jest prywatne)Safari can't verify the identity of the website "your-domain.test"
(Safari nie może zweryfikować tożsamości strony „twoja-domena.test”)
Najczęstszą przyczyną tego problemu jest brak prawidłowo zainstalowanego i zaufanego ServBay User CA
oraz ServBay Public CA
. Mogło się to zdarzyć, gdy:
- Korzeń certyfikatu ServBay nie został dodany do listy zaufanych certyfikatów w systemie.
- Używałeś wcześniej tej samej domeny (np.
myapp.test
) w innym lokalnym środowisku deweloperskim, jak MAMP czy Laravel Herd, przez co certyfikaty tych narzędzi konfliktowały z certyfikatami ServBay lub wystąpił problem z systemem certyfikatów tych narzędzi, co spowodowało zapisanie przez przeglądarkę nieprawidłowych danych zaufania lub certyfikatów.
Rozwiązanie
Postępuj według poniższych kroków:
- Uruchom ServBay
- Przejdź do Ustawień (Settings) i znajdź sekcję ServBay Root CA.
- Kliknij Zainstaluj ponownie ServBay Root CA (Reinstall ServBay Root CA). ServBay automatycznie naprawi instalację oraz zaufanie dla głównego certyfikatu.
- Całkowicie zamknij i ponownie uruchom swoją przeglądarkę (upewnij się, że zamknięte są wszystkie okna i procesy, aby wyczyścić pamięć SSL przeglądarki).
- Wejdź ponownie na swoją stronę – błąd certyfikatu SSL powinien być już rozwiązany.
Jeśli problem nadal występuje:
Zazwyczaj oznacza to, że w systemie istnieją stare, konfliktujące lub nieważne certyfikaty, szczególnie jeśli wcześniej generowałeś certyfikat dla tej samej domeny używając innych narzędzi (jak MAMP lub Herd).
- Otwórz aplikację Dostęp do pęku kluczy (Keychain Access) na macOS (znajdziesz ją w „Aplikacjach” w folderze „Narzędzia”).
- W prawym górnym rogu wpisz domenę, z którą masz problem (np.
myapp.test
). Jeśli nie jesteś pewien, możesz też spróbować wyszukać słowa kluczowe takie jakmamp
lubherd
, aby znaleźć właściwych wydawców certyfikatów. - Na górnym pasku wyboru „Rodzaj”, wybierz Certyfikaty (Certificates).
- W wynikach wyszukiwania znajdź wszystkie certyfikaty SSL powiązane z tą domeną. Szczególną uwagę zwróć na pole „Wystawca” (Issuer), czy jest to
ServBay User CA
,MAMP Development CA
,Laravel Herd CA
lub inne podobne nazwy. - Zaznacz znalezione certyfikaty związane z domeną (szczególnie te, które nie są wystawione przez
ServBay User CA
lub wyglądają podejrzanie) i usuń je (Delete
). Może być wymagane podanie hasła systemowego. Zachowaj ostrożność – usuń tylko certyfikaty dotyczące lokalnych domen deweloperskich. - (Opcjonalnie, ale zalecane) W Keychain Access ponownie wyszukaj
ServBay User CA
orazServBay Public CA
, upewniając się, że certyfikaty istnieją i ich ikonki nie mają czerwonego „x” (co oznacza brak zaufania). Jeśli certyfikat jest nieufny (czerwony krzyżyk), kliknij dwukrotnie certyfikat, rozwiń sekcję „Zaufanie (Trust)” i ustaw „Przy użyciu tego certyfikatu (When using this certificate)” na „Zawsze ufaj (Always Trust)”. - Wróć do aplikacji ServBay.
- Przejdź do Ustawień (Settings) -> ServBay Root CA.
- Kliknij Odtwórz wszystkie certyfikaty użytkownika ServBay (Recreate All ServBay User Certificates). Dzięki temu dla wszystkich stron zarządzanych przez ServBay zostaną wygenerowane nowe certyfikaty SSL.
- Zrestartuj komputer Mac – to zagwarantuje, że wszystkie usługi oraz komponenty systemowe załadują najnowsze certyfikaty oraz zaufanie.
- Ponownie otwórz przeglądarkę i odwiedź stronę.
Dzięki liście typowych komunikatów o błędach, użytkownik może szybciej rozpoznać, czy jego problem wynika z braku zaufania do certyfikatu SSL i znaleźć właściwe rozwiązanie.
Co zrobić, gdy certyfikat SSL zostanie utracony?
Podczas pracy z ServBay nad lokalnym rozwojem stron czasem może dojść do sytuacji przypadkowej utraty plików certyfikatów SSL. Skutkuje to niemożnością uruchomienia serwera WWW (np. Nginx, Caddy lub Apache) lub prawidłowego ładowania strony, a w logach pojawiają się komunikaty o błędach związanych z certyfikatem.
Opis problemu
Gdy automatycznie wystawiony przez ServBay plik certyfikatu SSL (pliki .crt
i .key
) zostanie utracony, w logach błędów serwera WWW możesz zobaczyć komunikaty podobne do poniższych. Błędy te oznaczają, że serwer nie może znaleźć albo odczytać plików certyfikatów pod zadeklarowaną ścieżką.
Oto przykłady najczęściej występujących komunikatów:
Błąd Nginx:
log
nginx: [emerg] cannot load certificate "/Applications/ServBay/ssl/private/tls-certs/servb3ay.host/servbay.host.crt": BIO_new_file() failed (SSL: error:80000002:system library::No such file or directory:calling fopen(/Applications/ServBay/ssl/private/tls-certs/servb3ay.host/servbay.host.crt, r) error:10000080:BIO routines::no such file)
nginx: configuration file /Applications/ServBay/package/etc/nginx/nginx.conf test failed
1
2
2
Błąd Caddy:
log
Error: loading http app module: provision http: getting tls app: loading tls app module: provision tls: loading certificates: open /Applications/ServBay/ssl/private/tls-certs/servbay.host/ser3vbay.host.crt: no such file or directory
1
Błąd Apache:
log
AH00526: Syntax error on line 15 of /Applications/ServBay/package/etc/apache/vhosts/servbay.host.conf:
SSLCertificateFile: file '/Applications/ServBay/ssl/pri3vate/tls-certs/servbay.host/servbay.host.crt' does not exist or is empty
1
2
2
Wszystkie te błędy sprowadzają się do tego samego: ścieżka do pliku certyfikatu w konfiguracji serwera WWW jest nieprawidłowa, ponieważ plik nie istnieje lub jest niedostępny.
Rozwiązanie
Dla certyfikatów SSL automatycznie wystawianych przez ServBay, aplikacja udostępnia wygodny mechanizm autodetekcji i automatycznego wystawiania nowych certyfikatów, aby ten problem rozwiązać.
Postępuj zgodnie z następującymi krokami:
- Uruchom aplikację ServBay: Upewnij się, że ServBay jest aktywny.
- Przejdź do listy stron: W bocznym pasku aplikacji ServBay kliknij Strony.
- Wybierz problematyczną stronę: Wyszukaj w liście tę, która podaje błąd związany z utratą certyfikatu SSL i kliknij jej nazwę.
- Autodetekcja i ponowne wydanie: ServBay podczas ładowania konfiguracji strony automatycznie sprawdzi, czy wymagane pliki certyfikatu SSL istnieją. Jeśli wykryje ich brak (np. plików
.crt
lub.key
), automatycznie wystawi i wdroży nowe pliki certyfikatu w odpowiedniej lokalizacji (/Applications/ServBay/ssl/private/tls-certs/twoja-domena/
). - Restart serwera WWW: Po wygenerowaniu i wdrożeniu nowych plików należy zrestartować pakiet serwera WWW obsługujący tę stronę (Nginx, Caddy lub Apache). Przejdź do strony Pakiety w bocznym pasku, znajdź używany serwer i kliknij przycisk restartu (zwykle ikona strzałki w kółku).
- Weryfikacja naprawy: Po skutecznym restarcie serwera spróbuj uzyskać dostęp do swojej lokalnej witryny przez HTTPS (
https://twoja-domena
). Problem powinien zostać rozwiązany i strona powinna się poprawnie ładować przez HTTPS.
Wskazówki
- To rozwiązanie dotyczy tylko certyfikatów automatycznie wystawianych przez ServBay. Jeśli używasz własnych, ręcznie zaimportowanych certyfikatów SSL, ServBay nie wygeneruje ich ponownie automatycznie – w takim wypadku musisz samodzielnie odzyskać lub ponownie zaimportować certyfikaty.
- ServBay wystawia certyfikaty lokalnym stronom przy pomocy wbudowanego
ServBay User CA
, umożliwiając aktywację HTTPS w środowisku lokalnym. Jeśli, mimo to, widzisz w przeglądarce komunikaty o braku zaufania do certyfikatu, sprawdź czyServBay User CA
został prawidłowo zaufany w systemie i przeglądarce. Zobacz dokumentację ServBay dotyczącą zaufania ServBay CA. - ServBay oferuje narzędzia do tworzenia kopii zapasowych, obejmujących również pliki certyfikatów SSL i konfiguracje stron. Regularne wykonywanie kopii zapasowej ułatwia szybkie przywrócenie danych w razie problemów.
Często zadawane pytania (FAQ)
Q: Dlaczego ServBay automatycznie wystawia certyfikaty SSL dla lokalnych stron?
A: Celem ServBay jest zapewnienie kompletnego środowiska deweloperskiego. By umożliwić testowanie i debugowanie aplikacji HTTPS w warunkach zbliżonych do produkcyjnych, ServBay automatycznie wystawia certyfikaty SSL lokalnym stronom przy użyciu własnego CA (ServBay User CA
).
Q: Czy mogę używać własnych certyfikatów SSL?
A: Tak, ServBay umożliwia import i użycie własnych certyfikatów SSL (m.in. wydanych przez ACME / Let's Encrypt). Niniejszy przewodnik dotyczy tylko automatycznie wystawianych certyfikatów ServBay.
Q: Czy ponowne wystawienie certyfikatu jest bezpieczne?
A: Tak, dla środowiska lokalnego to bezpieczne, ponieważ nowe certyfikaty są podpisywane przez lokalny ServBay User CA
i wykorzystywane wyłącznie do testów i rozwoju. Nie mają wpływu na bezpieczeństwo w publicznej sieci.
Podsumowanie
ServBay oferuje wygodne rozwiązania do zarządzania certyfikatami SSL w środowisku lokalnym. Jeśli automatycznie generowany certyfikat SSL dla lokalnej strony zniknie lub zostanie usunięty, wystarczy wykonać kilka prostych czynności, aby ServBay samodzielnie wykrył problem i automatycznie wystawił nowy certyfikat, przywracając prawidłowy dostęp do strony przez HTTPS w środowisku lokalnym.