Site icon 지락문화예술공작단

[HTTPD] SELINUX & SSLCertificateFile does not exist or is empty

개요


도메인 : ilaya.com
상황 : 인증서 설치 후 서비스 재시작 불가 및 오류 발생
httpd error log

httpd[3636944]: SSLCertificateFile: file ‘/etc/httpd/SSL/ilaya.com.crt’ does not exist or is empty

에러 발생 원인 추정


1. Apache(httpd)가 설정 파일에 지정된 경로에서 인증서 파일을 찾지 못하는 경우

2. 파일이 존재하고 내용도 정상인 경우

서버 상태


1. 서버 환경
2. 점검 항목
SELINUX 작동에 의한 결과로 추정

SELINUX 보안 설정 확인


1. 파일 상태 확인

# ls -Z /etc/httpd/SSL/ilaya.com.crt
unconfined_u:object_r:admin_home_t:s0 ilaya.com.crt

httpd_config_t 또는 cert_t가 포함되어야 하지만 결과에 있지 않음
2. 파일이나 디렉토리의 보안 문맥(Security Context)을 시스템에 정의된 기본값으로 되돌리기

# restorecon -v /etc/httpd/SSL/ilaya.com.crt
# ls -Z /etc/httpd/SSL/ilaya.com.crt
unconfined_u:object_r:cert_t:s0 ilaya.com.crt

cert_t 문자열이 포함되어 있음
이 상태에서 아파치를 재시작 하면 정상적으로 구동 완료됨

왜 이 명령어가 필요한가?


SELinux 시스템은 각 파일이 어디에 있어야 하는지(경로)에 따라 가질 수 있는 역할(Type)을 미리 지정

→ 새로 추가된 인증서 파일을 불러들이지 못하고, 서비스 실행 실패로 이어짐
restorecon 명령을 실행 효과
대상 파일이 /etc/httpd/SSL에 있음을 확인 후 cert_t 라벨 추가

보완


1. /etc/httpd/SSL 하위의 모든 파일을 인증서 타입(cert_t)으로 정의

semanage fcontext -a -t cert_t “/etc/httpd/SSL(/.*)?”

2. 정의된 설정을 실제 파일 시스템에 적용

restorecon -Rv /etc/httpd/SSL

3. 이후 인증서 파일을 추가 하거나 갱신 하는 경우
한다면 동일한 문제를 방지 가능
4. 명령어 비교
특정 파일 하나에 대해서만 보안 문맥을 복구

restorecon -v /etc/httpd/SSL/ilaya.com.crt

지정 디렉토리 및 안에 포함된 모든 하위 요소를 대상으로 복구 작업을 수행

restorecon -Rv /etc/httpd/SSL

Exit mobile version