저는 RHEL 6.5
과 Apache를 사용합니다 2.2.15
. restart
였을 때는 더 이상 시작할 httpd
수 없었습니다 httpd
. 다음을 표시합니다 /var/log/httpd/error_log
.
[Fri Aug 01 18:31:48 2014] [notice] suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)
[Fri Aug 01 18:32:35 2014] [notice] SELinux policy enabled; httpd running as context unconfined_u:system_r:httpd_t:s0
[Fri Aug 01 18:32:35 2014] [notice] suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)
[Fri Aug 01 18:42:46 2014] [notice] SELinux policy enabled; httpd running as context system_u:system_r:httpd_t:s0
[Fri Aug 01 18:42:46 2014] [notice] suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)
[Fri Aug 01 18:43:15 2014] [notice] SELinux policy enabled; httpd running as context unconfined_u:system_r:httpd_t:s0
[Fri Aug 01 18:43:15 2014] [notice] suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)
[Fri Aug 01 18:43:59 2014] [notice] suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)
[Fri Aug 01 18:44:12 2014] [notice] suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)
[Fri Aug 01 18:45:03 2014] [notice] suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)
실제로 disabled
재부팅했습니다 SELinux
.
무엇을 해야 할지 말해 주실 수 있나요?
답변1
죄송합니다. 이유를 찾았습니다. 그것은 모두 SSL CERT
문제에 관한 것입니다. 위의 이유 때문은 아닙니다 notices
.
위의 메시지와는 아무런 관련이 없습니다.
그러므로 그들을 무시하십시오.
어떻게 해야 할까요? Apache 상세 로깅을 활성화하면 실제 작업이 시작됩니다. Apache를 시작할 때 mod_ssl 모듈을 로드하지 못하는 현상을 보여줌으로써 실제로 무슨 일이 일어나고 있는지 보여줍니다. 그러다가 이것이 ssl.conf
내부에 SSL 인증서(또는 해당 가상 호스트 파일)가 구성되어 있기 때문이라는 것을 깨달았습니다 .
나는 거기에서 두 가지 실수를 저질렀습니다. 첫째, CERT 관련 파일(.crt/.key/.csr)에 대한 읽기 권한을 부여하지 않았습니다. 그런데 설상가상으로 파일 중 하나에 오류가 발생했습니다.
답변2
Apache Error [notice] suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)
어느 화창한 아침, Apache(httpd) 서비스가 다운되어 시작되지 않는다는 사실을 발견했습니다. :)
1단계: httpd 서비스 상태 확인:
#/etc/init.d/httpd status
httpd는 죽었으나 pid 파일은 존재합니다
2단계: httpd 프로세스를 검색하고 종료합니다.
#ps -ef | grep httpd
# killall -9 httpd
3단계: httpd 잠금 파일이 있는 경우 삭제합니다.
# rm -f /var/lock/subsys/httpd
4단계: Apache/httpd 서비스 다시 시작
# service httpd restart
Stop httpd [FAILED]
Start httpd [FAILED]
추가 발굴이 필요합니다.
5단계: httpd 오류 로그 파일 확인
# grep suexec /var/log/httpd/error_log
[Sun Sep 22 10:32:06 2013] [notice] suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)
[Sun Sep 22 10:33:51 2013] [notice] suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)
[Sun Sep 22 10:38:03 2013] [notice] suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)
[Sun Sep 22 10:45:53 2013] [notice] suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)
6단계: httpd nss 오류 로그 파일 확인
#tail -300 /var/log/httpd/nss_error_log
[Sun Sep 22 04:03:27 2013] [error] Certificate not verified: 'Server-Cert'
[Sun Sep 22 04:03:27 2013] [error] SSL Library Error: -8181 Certificate has expired
[Sun Sep 22 04:03:27 2013] [error] Unable to verify certificate 'Server-Cert'. Add "NSSEnforceValidCerts off" to nss.conf so the server can start until the problem can be resolved.
[Sun Sep 22 10:38:03 2013] [error] Certificate not verified: 'Server-Cert'
[Sun Sep 22 10:38:03 2013] [error] SSL Library Error: -8181 Certificate has expired
[Sun Sep 22 10:38:03 2013] [error] Unable to verify certificate 'Server-Cert'. Add "NSSEnforceValidCerts off" to nss.conf so the server can start until the problem can be resolved.
[Sun Sep 22 10:45:53 2013] [error] Certificate not verified: 'Server-Cert'
[Sun Sep 22 10:45:53 2013] [error] SSL Library Error: -8181 Certificate has expired
[Sun Sep 22 10:45:53 2013] [error] Unable to verify certificate 'Server-Cert'. Add "NSSEnforceValidCerts off" to nss.conf so the server can start until the problem can be resolved.
이 문제의 근본 원인은 nss라는 모듈에 있습니다. mod_nss
대안입니다 . 수행하지 않는 mod_ssl
작업을 수행하며 병렬로 실행될 수 있습니다 . 자세한 내용은 [mod_nss란 무엇입니까, Mod_NSS 설정 정보, 자세한 내용] 링크를 참조하세요.mod_ssl
mod_ssl
7단계: httpd conf.d 디렉터리에서 nss.conf 파일 삭제
#cd /etc/httpd/conf.d
#mv nss.conf nss.conf.orig
#mv ssl.conf ssl.conf.orig
#/etc/init.d/httpd start
Start httpd [OK]
답변3
CentOS 6에서 mod_ssl을 다시 설치 하고 yum erase mod_ssl
.yum mod_ssl
답변4
이것은 내 문제를 해결했습니다.
yumpurge ()
{
if [[ $# -eq 0 ]]; then
echo "usage:
removes packages including config files
example:
$0 ['pkg1 pkg2 pkgn']
";
return 0;
fi;
for package in "$*";
do
echo "removing config files for $package";
for file in $(rpm -q --configfiles $package);
do
echo "removing $file";
echo "enter any key to confirm";
rm -i -f $file;
done;
rpm -e $package;
done
}
yumpurge mod_ssl httpd
yum install -y httpd mod_ssl