SSLがなんか302リダイレクトしてしまう時の確認事項

証明書ファイルも設置して「/etc/httpd/conf.d/ssl.conf」にVirtualHostの設定も完了したのになぜかhttps://~にアクセスするとhttp://~に302リダイレクトがかかってしまう。

.htaccessも問題なし。特段アプリケーションでリダイレクトをかけているわけではない。
mod_rewriteの影響も考えられないとき、最後に確認する項目はこれだ!

「NameVirtualHost *:443」が設定されているか確認しよう。

いや最初に確認すべきところですね。すいません。
これで2時間近くつぶしてしまったことは社長には秘密です。

実は複数サイトのSSLをヴァーチャルホストで運用するために、既存で運用中のサーバーから「/etc/httpd/conf.d/ssl.conf」を持ってきたんですが、VirtualHostディレクティブには以下の様に記述しておりました。

<VirtualHost *:443>
何かしらの設定
</VirturalHost>

この時に「NameVirtualHost *:443」を書かないといけないのですが、既存のサーバーではこれが「/etc/httpd/conf/httpd.conf」に記載されとったわけです。

/etc/httpd/conf/httpd.conf
#
# Use name-based virtual hosting.
#
NameVirtualHost *:80
NameVirtualHost *:443

なんという・・・。

apacheを再起動した段階で「[warn] _default_ VirtualHost overlap on port 443, the first has precedence」と言うエラーが出ていたのに「warningだから無視していいでしょ。」と思ったのが諸悪の根源と言う噂も。

結論

「NameVirtualHost *:443」はssl.confに書いた方がいい。間違いない。

コメントを残す