最近、サーバーの*.key
ファイルと*csr
ファイルにSSL証明書を作成しました。
次に、Comodoを使用して*crt
と*.ca-bundle
を作成しました。
現在2つのvhostがあります。
の仮想ホスト- http://www.example.com
NameVirtualHost *:80
<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot "/home/example/public_html/example.com/httpdocs"
ServerName example.com
ServerAlias www.example.com
</VirtualHost>
https://www.example.com の仮想ホスト
NameVirtualHost *:443
<VirtualHost *:443>
SSLEngine on
SSLCertificateFile /etc/ssl/certs/example_com.crt
SSLCertificateKeyFile /etc/ssl/certs/server.key
<Directory /home/example/public_html/example.com/httpdocs>
AllowOverride All
</Directory>
DocumentRoot /home/example/public_html/example.com/httpdocs
ServerName example.com
</VirtualHost>
問題は、https://www.example.com
に移動すると404が返されることです。
Vhostが正しいかどうか、またはなぜ404を取得するのかわかりません。これまでに誰かがこれを見たことがありますか?
mod_ssl
を有効にして、Apacheを再起動しました
どうもありがとう
ssl.conf
のデフォルトのSSL仮想ホストは2つのことを行っています。
ServerName
またはServerAlias
と一致しないすべてのリクエストを取得します。NameVirtualHost
コマンドを削除するだけでは役に立ちません。ssl.conf
のvhostは、ポート443へのeveryリクエストを取得するためです。代わりに、そのvhostを完全に無効にします。あなたはそれを望まないか、必要としません。
また、対処すべき証明書の不一致がまだあります。証明書は、クライアントが使用しているホスト名をカバーする必要があります。
特別なトリックがなければ、HTTPSはNameVirtualHostsをサポートしません。削除する NameVirtualhost *:443
構成から。
とはいえ、ServerNameが証明書CNと一致しません。www.example.comに変更してください。
Apacheを再起動します。