Błąd internetu

Błąd ERR_SELF_SIGNED_CERT_GENERATION_FAILED – przyczyny i naprawa

Mateusz Sobociński
Autor: Mateusz Sobociński - CEO & Red. Nacz. @ asMAX
5 min. czytania

Błąd ERRSELFSIGNEDCERTGENERATION_FAILED oznacza, że przeglądarka lub serwer nie był w stanie wygenerować samopodpisanego certyfikatu SSL albo go odrzucił. Najczęściej pojawia się on podczas pracy z środowiskami deweloperskimi, testowymi oraz przy błędnej konfiguracji HTTPS. Poniżej znajduje się szczegółowy poradnik dla webmasterów, web deweloperów oraz użytkowników końcowych.

Co oznacza błąd ERRSELFSIGNEDCERTGENERATION_FAILED?

Ten błąd sygnalizuje problem z wygenerowaniem lub akceptacją samopodpisanego certyfikatu SSL w środowisku serwera lub podczas próby uruchomienia środowiska deweloperskiego. Może dotyczyć zarówno pracy lokalnej (np. projekty na Node.js, React, Angular, Laravel itp.), jak i pracy na serwerze testowym w sieci.

Najczęstsze przyczyny błędu to:

  • Konflikt przy generowaniu certyfikatu (już istnieje lub plik jest zablokowany).
  • Niedostateczne uprawnienia systemowe do generowania/instalowania certyfikatu.
  • Nieaktualna lub niepoprawna wersja narzędzi do generowania certyfikatów.
  • Blokada certyfikatów przez oprogramowanie antywirusowe lub zabezpieczenia systemowe.
  • Nieprawidłowa konfiguracja plików konfiguracyjnych serwera (np. nginx, Apache) lub środowisk deweloperskich.

Rozwiązanie dla webmastera/web dewelopera

1. Sprawdź istniejące certyfikaty

  • Upewnij się, że nie masz już wygenerowanego certyfikatu w katalogu projektu (np. localhost.crt, localhost.key).
  • Jeśli są, spróbuj je usunąć i ponowić proces generowania.

2. Uruchom środowisko/konsolę jako administrator

  • Często system odrzuca generację certyfikatu ze względu na brak uprawnień.
  • Na Windows: uruchom wiersz polecenia lub PowerShell jako administrator.
  • Na Mac/Linux: użyj sudo przed poleceniami wymagającymi uprawnień.

3. Napraw/odnów narzędzia do generacji certyfikatów

  • Sprawdź, czy korzystasz z najnowszej wersji narzędzia (mkcert, openssl, devcert, narzędzia środowisk Node.js, np. react-scripts).
  • Odinstaluj i zainstaluj ponownie narzędzie, jeśli występują konflikty.

Przykład generowania na Node.js (mkcert)

mkcert -install mkcert localhost 

4. Zweryfikuj konfigurację serwera

  • Sprawdź, czy w plikach konfiguracyjnych ścieżka do certyfikatu jest poprawna i nie wskazuje na nieistniejący plik.
  • Upewnij się, że serwer ma uprawnienia do odczytu plików certyfikatu.

Przykład konfiguracji w nginx:

server { listen 443 ssl; ssl_certificate /etc/ssl/certs/localhost.crt; ssl_certificate_key /etc/ssl/private/localhost.key; ... } 

Rozwiązanie dla użytkownika końcowego

  • Jeśli korzystasz z serwisu i widzisz ten komunikat, oznacza to problem po stronie serwera lub aplikacji ― zgłoś to administratorowi.
  • Jeżeli korzystasz z oprogramowania lokalnie (np. lokalna aplikacja desktopowa komunikująca się po HTTPS), spróbuj uruchomić ją jako administrator.
  • Czasem przeglądarki blokują certyfikaty samopodpisane: przejdź do „zaawansowane” i spróbuj zaakceptować ryzyko (tylko w środowisku testowym! Nie zalecane na produkcji).

Typowe pytania i wyjaśnienia techniczne

  • Czym jest certyfikat samopodpisany?
    To certyfikat SSL, który nie został wystawiony przez zaufane CA (Certificate Authority), a przez samego użytkownika lub serwer. Przeznaczone do zastosowań testowych i lokalnych.

  • Co zrobić, jeśli błąd pojawia się nagle na istniejącym środowisku?
    Sprawdź czy certyfikat nie wygasł, czy uprawnienia plików nie uległy zmianie, czy nie została zmieniona konfiguracja serwera lub aktualizacja systemowa/antywirusowa nie blokuje certyfikatów.

  • Czy błąd oznacza atak lub ryzyko dla bezpieczeństwa?
    Zazwyczaj nie. To problem konfiguracyjny lub uprawnień, jednak na produkcji należy korzystać wyłącznie z certyfikatów od zaufanych dostawców.

Krok po kroku – przykładowa naprawa dla projektu React (Node.js)

  1. Usuń pliki localhost.key, localhost.crt z katalogu głównego.
  2. Zainstaluj narzędzie mkcert:
 npm install -g mkcert 
  1. Zainstaluj lokalny zaufany CA:
 mkcert -install 
  1. Wygeneruj nowe certyfikaty:
 mkcert localhost 
  1. Podaj ścieżkę do certyfikatów w pliku .env lub konfiguracji serwera.
  2. Uruchom ponownie serwer/deweloperski serwer frontendu.

Sytuacje szczególne

  • Jeśli używasz Docker — zadbaj o odpowiedni montaż/udostępnianie certyfikatów do kontenerów.
  • Jeśli problem dotyczy firewalla/antywirusa — wprowadź wyjątek dla używanego portu lub aplikacji.
  • Dla środowiska Windows po aktualizacjach lub zmianach polityk bezpieczeństwa – sprawdź, czy nie zostały zablokowane operacje kryptograficzne przez polityki lokalne.

Materiały dodatkowe

  • Dokumentacja narzędzia do generowania certyfikatów (mkcert, openssl).
  • Dokumentacja Twojego frameworka lub narzędzia programistycznego.
  • Sprawdzenie ograniczeń systemowych, aktualizacji polityk bezpieczeństwa.

Jeśli powyższe rozwiązania nie działają, dokładnie sprawdź komunikaty błędu w konsoli, logi serwera oraz ustawienia środowiska (czasami problem tkwi w konflikcie portu, zduplikowanych plikach lub restrykcjach systemowych). Jeśli błąd pojawia się podczas uwierzytelniania na korporacyjnych usługach Microsoft, sprawdź czy lista odwołania certyfikatów CRL jest dostępna i aktualna.

Podziel się artykułem
CEO & Red. Nacz. @ asMAX
Obserwuj:
Ex-redaktor w GW (Technologie) i ex-PR w koreańskim start-upie technologicznym. Absolwent Imperial College Business School (MBA) i Politechniki Warszawskiej. Od 2025 CEO i redaktor naczelny w asMAX.
Brak komentarzy

Dodaj komentarz

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