RHEL 6.5
とApache 2.2.15
を使用しています。 restart
the 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
を使用して再起動しています。
どうしたらいいですか?
申し訳ありません、理由を見つけました。これは完全にSSL CERT
問題。実際には上記のnotices
が原因ではありません。
上記のメッセージとは関係ありませんでした。
したがって、それらを無視してください。
どのようにすれば、Apache Detailed Logsを有効にして、それが本当の動きです。これは、Apacheの起動中にmod_sslモジュールのロードの失敗を示すことで、実際に何が起こっているかを示します。それから私はそれがssl.conf
(またはそれぞれのVhostファイル)内にSSL証明書構成があります。
そこで2つの間違いをしました。まず、CERT関連のファイル(.crt/.key/.csr)に読み取り権限を与えませんでした。その後、さらにひどいことに、ファイルの1つが間違っていました。
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_ssl
が実行できないことをいくつか実行し、mod_ssl
と一緒に実行できます。詳細については、リンク[mod_nssとは、Mod_NSSのセットアップについて、詳細]を参照してください。
手順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]
これは私の問題を修正しました。
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