nginx permissão negada aos arquivos de certificado para configuração ssl

21

Estou instalando um proxy ssl nginx no meu servidor Fedora.

Eu criei um par de certificados e chaves em / etc / nginx. Eles se parecem com isso:

ls -l /etc/nginx/
total 84
...
-rw-r--r--. 1 root root 1346 Sep 20 12:11 demo.crt
-rw-r--r--. 1 root root 1679 Sep 20 12:11 demo.key

...

Como root, estou tentando iniciar o serviço nginx:

systemctl start nginx.service

Eu recebo o seguinte erro:

nginx[30854]: nginx: [emerg]
SSL_CTX_use_certificate_chain_file("/etc/nginx/demo.crt") failed (SSL: error:0200100D:system     library:fopen:Permission denied...e:system lib)
nginx[30854]: nginx: configuration file /etc/nginx/nginx.conf test failed

Há algo de errado com as permissões nesses arquivos?

    
por numb3rs1x 20.09.2013 / 18:23

2 respostas

34

Você provavelmente tem o SELinux no modo enforcing (o padrão para o Fedora):

sestatus -v

Se este for o caso, verifique os registros de auditoria, você deve encontrar o erro de acesso:

ausearch -m avc -ts today | audit2allow

Você também provavelmente moveu o arquivo em vez de copiá-lo, portanto, o contexto de segurança do arquivo pode estar errado.

ls -lrtZ /etc/nginx/demo.* 

e corrija se necessário:

restorecon -v -R /etc/nginx
    
por 20.09.2013 / 18:38
6

Eu acho que é o SELinux que nega permissão. Verifique o contexto do SELinux. Deles devem ser httpd_config_t. Se não, corra

restorecon /etc/nginx/demo.*

ou

chcon httpd_config_t /etc/nginx/demo.*

como root.

Você pode verificar os logs em / var / log / audit / para ver se é o SELinux que nega permissão. Você também pode executar

setenforce 0

para definir o SELinux no modo permissivo . Desta forma, o SELinux ainda gera mensagens AVC (em / var / log / audit /), mas permite o acesso.

    
por 20.09.2013 / 18:37