Aqui está o erro que estou recebendo:
Falha ao recarregar a configuração do nginx: nginx: [emerg] SSL_CTX_use_certificate_chain_file ("/ path / to / cert.pem") falhou (SSL: erro: 02001002: biblioteca do sistema: fopen: nenhum erro de arquivo ou diretório: 20074002: rotinas BIO: FILE_CTRL: system erro de lib: 140DC002: rotinas SSL: SSL_CTX_use_certificate_chain_file: lib do sistema) nginx: arquivo de configuração /etc/nginx/nginx.conf falhou
Tenho 100% de certeza de que o arquivo está nesse local, mas o Nginx parece pensar que não está lá. Mesclei o domain.crt
e intermediate.crt
manualmente nessa ordem. Eu estive coçando minha cabeça sobre isso o dia todo. Espero que alguém tenha visto esse erro e tenha uma solução. (E uma nota lateral não é um erro ao colar que o local do arquivo é mostrado apenas uma vez e não novamente depois de 'nenhum arquivo ou diretório').
fonte
path/to/cert.pem
certamente não é um local válido.Respostas:
Você tem certeza de que o usuário Nginx tem acesso ao diretório?
Verifique também as permissões do
.pem
arquivo, se o Nginx não puder acessá-lo, ele poderá aparecer como'no such file or directory'
.Se as permissões estiverem corretas, você poderá verificar o caminho real novamente. Como você colou (que eu sei que você removeu o diretório) não há um começo
/
que possa ser o problema.EDITAR
Tente mover sua configuração de SSL para a seguinte estrutura (bem como altere
nginx.conf
para refletir):O Nginx pode estar falhando no seu computador
.pem
porque as permissões são muito abertas (é necessário fonte para verificar se o Nginx faz isso), mas a configuração acima deve funcionar bem.fonte
/
no início, então mudei a pergunta para refletir isso. O arquivo está localizado em/home/user/subdirs
e todas as permissões de arquivo e diretório são de propriedade de user.www-data (nome de usuário. nome do grupo) e conjunto 775. E acho que o nginx tem acesso a qualquer coisa de propriedade da www-data, embora eu possa estar enganado.$root/keys/
então minha linha de certificados parecessl_certificate keys/cert.pem
... eles precisam estar na raiz da web?chmod -R 600 /etc/nginx/ssl
na minha entrypoint resolver a questão graçasDeixarei minha resposta para o meu problema, caso alguém se depare com esse tópico.
Eu tenho o nginx executado no contêiner do docker e tenho o mesmo erro ao tentar acessar o arquivo de chave privada. Depois de coçar a cabeça por várias horas, chego à conclusão de que o nginx do docker não possui o volume de montagem que contém meus dados.
A única opção para adicionar volume de montagem é remover e recriar o contêiner com a
-v
opção: https://docs.docker.com/engine/tutorials/dockervolumes/Às vezes, coisas triviais são difíceis de ver. Espero que esta ajuda.
fonte
Um cenário possível:
às vezes pode acontecer que, ao configurar arquivos SSL (chave privada e certificado) para o Virtualhost que está sendo configurado, tenha sido esquecido de especificar o caminho absoluto em que esses arquivos residem.
Por exemplo, se você seguir este documento oficial do Nginx: http://nginx.org/en/docs/http/configuring_https_servers.html
Suponha que você armazene os arquivos SSL dentro de " /etc/nginx/conf.d ":
O que acontece?
Por padrão, quando não especificado o caminho absoluto para um arquivo comum usado pelo Nginx, o Nginx pesquisará os arquivos em "/ etc / nginx"
Em /var/log/nginx/error.log
O que deve ser feito?
Para especificar o caminho absoluto dos arquivos adicionais que são usados pela sua configuração do Virtualhost.
Como isso:
fonte
Eu tive o mesmo problema. Eu tive que alterar os arquivos / etc / nginx / sites-enabled / default & default.save que foram adicionados automaticamente ao nome do meu site sem o .com após o mesmo durante o processo de instalação, QUAL O PROBLEMA EM MINHA INSTÂNCIA . Para mantê-lo breve, essas duas linhas precisavam ser alteradas no meu / etc / nginx / sites-enabled / default. Observe que este arquivo é exibido com um ícone de atalho no meu sistema de arquivos, mas consegui clicar com o botão direito do mouse no arquivo e editá-lo com a opção "Editar / Editor interno".
HTTPS - solicitações de proxy para o Node.js local ap # HTTPS - solicitações de proxy para o aplicativo Node.js. local: servidor {listen 443; server_name switchmagic.com;
Quando examinei os arquivos e adicionei o .com, que é a convenção de nomenclatura que costumava adicionar ao arquivo, às referências switchmagic nos diretórios dos arquivos que estavam lançando os erros, tudo estava bem! Eu encontrei muitos desenvolvedores fazendo a mesma pergunta, então eu queria lançar minha solução para ajudar, pois as respostas encontradas eram principalmente sobre permissões de root, mas permissões de root não eram o problema no meu caso. Rock on Devs.
fonte