web-dev-qa-db-ja.com

SSLURLは404を与えます

最近、サーバーの*.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を再起動しました

どうもありがとう

4
terrid25

ssl.confのデフォルトのSSL仮想ホストは2つのことを行っています。

  1. SNIをサポートしていないクライアントに提示する証明書を選択できます。
  2. 別の名前ベースの仮想ホストのServerNameまたはServerAliasと一致しないすべてのリクエストを取得します。

NameVirtualHostコマンドを削除するだけでは役に立ちません。ssl.confのvhostは、ポート443へのeveryリクエストを取得するためです。代わりに、そのvhostを完全に無効にします。あなたはそれを望まないか、必要としません。

また、対処すべき証明書の不一致がまだあります。証明書は、クライアントが使用しているホスト名をカバーする必要があります。

1
Shane Madden

特別なトリックがなければ、HTTPSはNameVirtualHostsをサポートしません。削除する NameVirtualhost *:443構成から。

とはいえ、ServerNameが証明書CNと一致しません。www.example.comに変更してください。

Apacheを再起動します。

1
adaptr