Oto błąd, który otrzymuję:
Ponowne ładowanie konfiguracji nginx: nginx: [emerg] SSL_CTX_use_certificate_chain_file ("/ path / to / cert.pem") nie powiodło się (SSL: błąd: 02001002: biblioteka systemowa: fopen: brak takiego pliku lub błędu katalogu: 20074002: procedury BIO: FILE_CTRL: system błąd lib: 140DC002: Procedury SSL: plik_certyfikatu_ SSL_CTX: łańcuch_certyfikatu: lib systemowy nginx: plik konfiguracyjny /etc/nginx/nginx.conf nie powiódł się
Jestem w 100% pewien, że plik znajduje się w tej lokalizacji, ale Nginx wydaje się myśleć, że go nie ma. Połączyłem domain.crt
i intermediate.crt
ręcznie w tej kolejności. Drapałem się nad tym przez cały dzień. Mam nadzieję, że ktoś widział ten błąd i ma rozwiązanie (i na marginesie to nie błąd w wklejaniu, że lokalizacja pliku jest wyświetlana tylko raz, a nie ponownie po „braku takiego pliku lub katalogu”).
źródło
path/to/cert.pem
z pewnością nie jest prawidłową lokalizacją.Odpowiedzi:
Czy jesteś pewien, że użytkownik Nginx ma dostęp do katalogu?
Sprawdź także uprawnienia do
.pem
pliku, jeśli Nginx nie może uzyskać do niego dostępu, może pokazać jako'no such file or directory'
.Jeśli uprawnienia są prawidłowe, możesz ponownie sprawdzić rzeczywistą ścieżkę. Jak to wkleiłeś (wiem, że usunąłeś katalog), nie ma początku,
/
który mógłby być problemem.EDYTOWAĆ
Spróbuj przenieść konfigurację SSL do następującej struktury (a także zmień ją
nginx.conf
na odzwierciedlającą):Nginx może zawieść na twoim,
.pem
ponieważ uprawnienia są zbyt otwarte (potrzebujesz źródła, aby sprawdzić, czy Nginx to robi), ale powyższa konfiguracja powinna działać poprawnie.źródło
/
na początku, więc zmieniłem pytanie, aby to odzwierciedlić. Plik znajduje się w,/home/user/subdirs
a wszystkie uprawnienia do plików i katalogów w nim są własnością użytkownika. Www-data (nazwa użytkownika. Nazwa grupy) i zestaw 775. I myślę, że nginx ma dostęp do wszystkiego, co jest własnością www-data, choć mogę się mylić.$root/keys/
swoją, więc moja linia certyfikatów wygląda jakssl_certificate keys/cert.pem
... czy muszą być w katalogu głównym?chmod -R 600 /etc/nginx/ssl
w moim punkcie wejścia rozwiązać problem dziękiPozostawię swoją odpowiedź na mój problem, na wypadek, gdyby ktoś natknął się na ten temat.
Mam nginx uruchomiony w kontenerze dokera i mam ten sam błąd podczas próby uzyskania dostępu do pliku klucza prywatnego. Po kilku godzinach drapania się w głowę doszedłem do wniosku, że nginx mojego dokera nie ma woluminu montowania zawierającego moje dane.
Jedyną opcją dodania woluminu montowania jest usunięcie i ponowne utworzenie kontenera z
-v
opcją: https://docs.docker.com/engine/tutorials/dockervolumes/Czasami trywialne rzeczy są trudne do zobaczenia. Mam nadzieję, że to pomoże.
źródło
Możliwy scenariusz:
czasami może się zdarzyć, że podczas konfigurowania plików SSL (klucz prywatny i certyfikat) dla konfigurowanego hosta wirtualnego zapomniano podać bezwzględną ścieżkę, w której znajdują się te pliki.
Na przykład, jeśli postępujesz zgodnie z tym oficjalnym dokumentem od Nginx: http://nginx.org/en/docs/http/configuring_https_servers.html
Załóżmy, że przechowujesz pliki SSL w „ /etc/nginx/conf.d ”:
Co się dzieje?
Domyślnie, jeśli nie zostanie podana ścieżka bezwzględna dla zwykłego pliku, który jest używany przez Nginx, Nginx będzie szukał plików w „/ etc / nginx”
Z /var/log/nginx/error.log
Co musi być zrobione ?
Aby określić bezwzględną ścieżkę dodatkowych plików, które są używane przez konfigurację Virtualhost.
Lubię to:
źródło
Miałem ten sam problem. Musiałem zmienić pliki / etc / nginx / sites-enabled / default & default.save, które zostały automatycznie dodane do mojej strony bez nazwy .com po jej zakończeniu w trakcie procesu instalacji, co było problemem w mojej instancji . Krótko mówiąc, te dwie linie musiały zostać zmienione w moim / etc / nginx / sites-enabled / default. Pamiętaj, że ten plik jest wyświetlany z ikoną skrótu w moim systemie plików, ale byłem w stanie kliknąć go prawym przyciskiem myszy i edytować za pomocą opcji „Edytuj / Edytor wewnętrzny”.
HTTPS - żądania proxy do lokalnej aplikacji Node.js ap # HTTPS - żądania proxy do lokalnej aplikacji Node.js: serwer {nasłuchuj 443; nazwa_serwera switchmagic.com;
Kiedy przejrzałem pliki i dodałem .com, czyli konwencję nazewnictwa, której użyłem, aby dodać plik, do odniesień switchmagic w katalogach plików, które generowały błędy, wszystko było dobrze! Znalazłem wielu deweloperów zadających to samo pytanie, więc chciałem tam rzucić rozwiązanie, ponieważ odpowiedzi, które znalazłem, dotyczyły głównie uprawnień root, ale uprawnienia root nie były moim problemem. Rock on Devs.
źródło