Ubuntu 14.04 Apache 2.4.7 w/mod_ssl
(単一の)ドメイン証明書をインストールしようとしています。何らかの理由で、Apacheはそれを受け入れず、関連するWebサイトが有効になっている場合は起動を拒否します。グーグルを頻繁に実行しているにもかかわらず、エラーメッセージを理解できません。証明書が構成されていないと表示されるのはなぜですか?これはvirtualhostで設定され、正しい場所にあるcrtファイルを指します。
Error_log
[Tue May 19 18:11:08.123857 2015] [ssl:emerg] [pid 10040:tid 140146576725888] AH02240: Server should be SSL-aware but has no certificate configured [Hint: SSLCertificateFile] ((null):0)
[Tue May 19 18:11:08.123894 2015] [ssl:emerg] [pid 10040:tid 140146576725888] AH02312: Fatal error initialising mod_ssl, exiting.
私が試したこと:
これが仮想ホストです
<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerName www.domain.tld
RedirectMatch (.*) https://domain.tld$1
</VirtualHost>
<VirtualHost _default_:443>
ServerAdmin admin@localhost
ServerName domain.tld
DocumentRoot /home/user/www/domain.tld/public
# SSL CERTIFICATES
SSLEngine on
SSLCertificateFile /etc/ssl/certs/domain.tld.crt
SSLCertificateKeyFile /etc/ssl/private/domain.tld.key
SSLCertificateChainFile /etc/ssl/certs/GandiStandardSSLCA2.pem
SSLVerifyClient None
# SSLProtocol all -SSLv2 -SSLv3
<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
<Directory /usr/lib/cgi-bin>
SSLOptions +StdEnvVars
</Directory>
BrowserMatch "MSIE [2-6]" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown
<Directory /home/user/www/domain.tld/public>
Require all granted
</Directory>
LogLevel error
ErrorLog ${Apache_LOG_DIR}/user-eu-error.log
CustomLog ${Apache_LOG_DIR}/user-eu-access.log combined
ProxyPassMatch ^/(.*\.php(/.*)?)$ fcgi://127.0.0.1:9000/home/user/www/domain.tld/public/$1
ErrorDocument 404 /missing.php
# Mod_status
<location /server-status>
SetHandler server-status
Order Allow,Deny
Allow from all
</location>
</VirtualHost>
</IfModule>
何が悪いのかについて何か提案はありますか?
Eltraiは正しいパスにあると思いますが、最初の<VirtualHost>
ブロックを削除し、2番目のブロックでServerAlias
を使用します
<VirtualHost _default_:443>
ServerAdmin admin@localhost
ServerName domain.tld
ServerAlias www.domain.tld
同じブロックに後でRedirectMatch
を追加して、wwwからnonにリダイレクトできます。
以前の回答で言及されていなかったことを確認するもう1つのこと。
グローバル構成のどこかに「SSLEngine on」(基本的にはVirtualHostおよび同様のブロックの外側のどこかに)があり、SSLCertificateFileディレクティブもグローバルに定義されていない場合、Apacheは仮想ホストに到達する前にこれを抑制します。このエラーが発生します。
エラーメッセージは実際には正しいですが、サーバーに証明書がないことについては触れていません。
最初の仮想ホスト(www.domain.tld用)は、ポート443であってもSSLが有効になっていません。
2番目のSSLEngine、SSLCertificateFileなどを追加する必要があります。追加しない場合、www.domain.tldに対してhttpsアクセスはできません。
私はそれが平らな拒絶を開始させるべきかどうかあまり確信がありません、しかし...