Apache 2
のSSLを構成しています。私のシステムはUbuntu Server 10.04 LTS
です。仮想ホスト構成にSSLに関連する次の設定があります。
SSLEngine On
SSLCertificateKeyFile /etc/ssl/private/server.insecure.key
SSLCertificateFile /etc/ssl/certs/portal.selfsigned.crt
(補足:キーファイルに.insecure
を使用しています。これは、ファイルがパスフレーズで保護されておらず、安全でないキーファイルであることを明確に確認したいためです)。
したがって、Apacheを再起動すると、次のメッセージが表示されます。
Syntax error on line 39 of /etc/Apache2/sites-enabled/500-portal-https:
SSLCertificateKeyFile: file '/etc/ssl/private/server.insecure.key' does not exist or is empty
Error in syntax. Not restarting.
しかし、ファイルはそこにあり、空ではありません(実際には秘密鍵が含まれています)。
Sudo ls -l /etc/ssl/private/server.insecure.key
-rw-r----- 1 root www-data 887 2012-08-07 15:14 /etc/ssl/private/server.insecure.key
Sudo ls -ld /etc/ssl/private/
drwx--x--- 2 root www-data 4096 2012-08-07 13:02 /etc/ssl/private/
Www-dataとssl-certの2つのグループを使用して、所有権を変更してみました。 Ubuntuでどちらが正しいのかわかりません:デフォルトではUbuntuはssl-certを使用しますが、一方でApacheプロセスはユーザーwww-dataで実行されます:ユーザーrootによって開始されますが、一部ではwww-dataに変更ポイント、そして私は証明書がいつ読み込まれるかわかりません。
しかし、いずれにしても、グループオーナーを変更しても状況は改善されません。私の質問は:
/etc/ssl/certs/portal.selfsigned.crt
)が連動していることを確認するにはどうすればよいですか?Apacheが誤解を招くエラーメッセージを表示していると思います。エラーを特定します。
エラーが見つかりました。スクリプトを使用して証明書をセットアップしていて、実行している手順の1つがApache2ctl configtest
。エラーはこのコマンドから発生したものであり、Apacheの再起動からではありませんでした。 Apache2ctlコマンドを通常のユーザーとして実行していたため、キーファイルにアクセスできなかったため、エラーメッセージが表示されました。
Facit:すべてのApacheコマンドがSudoで実行されていることを確認してください。構文検証のみを目的としたもの(Apache2ctl
)、キーへのアクセスが必要な場合もあります。
私もメッセージを受け取ります
SSLCertificateKeyFile: file '/path/to/file' does not exist or is empty
/path/to/file
が存在し、SELinuxがオンになっていて、このファイルにApacheユーザーがアクセスできなかったという理由だけで、適切な権限があります。
次のようになります。
$ Sudo ls -laZ /etc/pki/tls/certs/
drwxr-xr-x. root root system_u:object_r:cert_t:s0 .
drwxr-xr-x. root root system_u:object_r:cert_t:s0 ..
-rw-------. root root unconfined_u:object_r:cert_t:s0 this-one-works.crt
-rw-------. root root unconfined_u:object_r:admin_home_t:s0 this-one-is-unaccessable.crt
これを修正するには、Sudo restorecon -Rv /etc/pki/tls/certs/
を実行します。問題のあるファイルのSELinuxプロパティが修復されます。
私はこれを実行しました、そしてそれはCentOS 5.7で私を助けました
server:~ # chcon -t cert_t /etc/pki/tls/private/my.key
server:~ # ls -laZ /etc/pki/tls/private/
私は同様のメッセージを受け取りました:
SSLCertificateChainFile: file '/opt/bitnami/Apache2/conf/DigiCertCA.crt\xe2\x80\x9d' does not exist or is empty
私の問題は、私が使用していたテキストエディターが、通常の二重引用符のascii 34の代わりに「右引用符」のascii 148を配置することでした。 UNIXタイプのエディター(例:TextWrangler)を使用して、正しい引用符を付け、問題を修正しました。
権限は間違っていますが、あなたの答えによると、それは問題の原因ではありませんでした:
drwx--x--- 2 root www-data 4096 2012-08-07 13:02 /etc/ssl/private/
/ etc/ssl/privateは通常、debianベースのシステムのグループssl-certに属しています。
0710パーマに気づき、何に使用できるのか疑問に思いました。