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 /에서)를 생성하지만 액세스는 허용합니다.