Błędy certyfikatów i połączeń
Ten sam brakujący certyfikat w każdym środowisku brzmi inaczej. Zacznij od komunikatu, który widzisz.
Większość tych komunikatów to ta sama skarga słowami różnych środowisk: program nie zbudował łańcucha od certyfikatu serwera do urzędu, któremu ufa. Przyczyn jest kilka, a naprawa zależy od tego, która dotyczy ciebie:
- urzędu brakuje w magazynie zaufania tego programu - najczęściej firmowego certyfikatu głównego albo produktu do inspekcji TLS, dodanego do systemu, a nigdy do Javy, Gita czy Pythona,
- serwer nie wysyła certyfikatu pośredniego - wina serwera, którą przeglądarka ukrywa, bo pamięta certyfikat pośredni z innej strony,
- certyfikat nie pasuje do tego połączenia - wygasł albo wystawiono go dla innej nazwy,
- coś pośrodku odpowiada zamiast serwera - proxy, które chce poświadczeń, albo takie, które podpisuje każde połączenie na nowo.
Każda strona niżej mówi, co znaczy komunikat, jakie ma przyczyny i co uruchomić. Uruchomienie certdoctor na tym adresie mówi, która przyczyna dotyczy ciebie, na maszynie, na której połączenie pada.
Komunikaty są po angielsku, bo tak je wypisują programy, i właśnie tak warto je wyszukiwać.
PKIX path building failed
PKIX path building failed i unable to find valid certification path to requested target w Javie: dlaczego jeden JDK odmawia i które polecenie keytool pomaga.
unable to get local issuer certificate
SSL certificate problem: unable to get local issuer certificate w curl, git, Pythonie, pip i Node: co to znaczy i jak naprawić właściwy magazyn zaufania.
self-signed certificate in certificate chain
npm ERR! SELF_SIGNED_CERT_IN_CHAIN i self-signed certificate in certificate chain w Node.js, git i Pythonie: dlaczego pojawia się za proxy i jak to naprawić.
x509: certificate signed by unknown authority
x509: certificate signed by unknown authority w programach w Go, Dockerze, kubectl, Terraform i Helm: dlaczego decyduje magazyn systemu i jak to naprawić.
certificate has expired
certificate has expired, CERT_HAS_EXPIRED i x509 certificate has expired or is not yet valid: który certyfikat w łańcuchu wygasł i czyja to naprawa.
Nazwa hosta nie pasuje do certyfikatu
no alternative certificate subject name matches target host name, ERR_TLS_CERT_ALTNAME_INVALID i Hostname mismatch: dlaczego nazwa i certyfikat się różnią.
Brak certyfikatu pośredniego
Działa w przeglądarce, pada w curl, Javie i Pythonie? Serwer nie wysyła certyfikatu pośredniego. Jak udowodnić, że winny jest serwer, i jak to naprawić.
Python 3.13 certificate verify failed
Python 3.13 pada z Missing Authority Key Identifier albo Basic Constraints of CA cert not marked critical. Który certyfikat łamie którą regułę.
407 Proxy Authentication Required
407 Proxy Authentication Required w curl, git, npm, pip i Javie: ustal, przez które proxy naprawdę idzie adres i jakich poświadczeń ono chce.