web-dev-qa-db-ja.com

CentOS6-Apache2は機能しますが、SSLをインストール/有効化すると、アクセス許可エラーのためにサーバーが起動しません

開発サーバーとして使用するために、SSLを使用してApacheをCentOS6にインストールしようとしています。

私はSSLを機能させるためにここに投稿された指示に従っています: http://wiki.centos.org/HowTos/Https (注:SSLを有効にしようとするまでApacheは正常に機能していました。)

Apacheの再起動に取り掛かったとき、サーバーが起動しませんでした。次のエラーが発生します。

[Mon Feb 13 18:31:36 2012] [error] (13)Permission denied: Init: Can't open 
 server certificate file /etc/pki/tls/certs/ca.crt

報告された証明書はユーザーとグループが所有していることがわかったので、root:rootに変更しましたが、違いはありませんでした。他に何を試すべきか、何を見るべきかわかりません。ありがとう。

注:私の質問は this に似ていますが、エラーは異なります。

5
Frank V

したがって、答えが実際に何であるかを理解していない人のために:

これはselinuxの問題です。ファイルは異なるselinux「コンテキスト」を持つことができ、間違ったコンテキストを持つファイルは、通常の権限が正しい場合でもhttpdデーモンで読み取ることができません。私の場合、解決策は次のことを行うことでした。

chcon --reference /file/with/correct/context /path/to/certificate/file

これにより、参照されているファイルから証明書にコンテキストがコピーされます。参照できるファイルがない場合、正しいコンテキストを設定するための少しトリッキーな方法(ファイルを入力する必要があるため)は次のとおりです。

chcon unconfined_u:object_r:httpd_config_t:s0 /path/to/certificate/file
11
saturdayplace