SSL 구성을 위해 인증서 파일에 대한 nginx 권한이 거부되었습니다. 보입니다 : ls -l /etc/nginx/ total 84 … -rw-r–r–.

Fedora 서버에 nginx SSL 프록시를 설치하고 있습니다.

/ etc / nginx 아래에 인증서와 키 페어를 만들었습니다. 그들은 다음과 같이 보입니다 :

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

...

루트로 nginx 서비스를 시작하려고합니다.

systemctl start nginx.service

다음과 같은 오류가 발생합니다.

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

이 파일에 대한 권한에 문제가 있습니까?



답변

SELinux를 강제 모드로 설정했을 것입니다 (Fedora의 기본값).

sestatus -v

이 경우 감사 로그를 확인하면 액세스 오류가 있습니다.

ausearch -m avc -ts today | audit2allow

파일을 복사하지 않고 파일을 이동했을 수도 있으므로 파일의 보안 컨텍스트가 잘못되었을 수 있습니다.

ls -lrtZ /etc/nginx/demo.*

필요한 경우 수정하십시오.

restorecon -v -R /etc/nginx

답변

권한을 거부하는 것이 SELinux라고 생각합니다. SELinux 컨텍스트를 확인하십시오. 그것들은 httpd_config_t 여야합니다. 그렇지 않으면 실행

restorecon /etc/nginx/demo.*

또는

chcon httpd_config_t /etc/nginx/demo.*

루트로.

/ var / log / audit / 아래에서 로그를 확인하여 권한을 거부하는 SELinux인지 확인할 수 있습니다. 당신은 또한 실행할 수 있습니다

setenforce 0

SELinux를 허용 모드 로 설정 합니다 . 이런 식으로 SELinux는 여전히 AVC 메시지 (/ var / log / audit /에서)를 생성하지만 액세스는 허용합니다.