- 締切済み
apache,ssl,virtualhost
VPS上にいくつかのサブドメインでバーチャルホスト(名前ベース)を運用しています。 実現したいのは以下の設定です。 ブラウザに入力されたURL => リダイレクト先 (1)http://hoge.net => https://hoge.net (2)http://www.hoge.net => https://hoge.net (3)https://www.hoge.net => https://hoge.net SSL証明書が有効なのは、『hoge.net』と『hige.hoge.net』です。『www.hoge.net』は有効ではありません。 wwwについては、あっても無くてもアクセス可能とし、あった場合はリダイレクト(いわゆる無しで統一)したいので、設定してあります。 (1)と(2)は問題ないのですが、ブラウザに(3)を入力するとセキュリティの警告エラーが出てしまいます。 その警告を無視して進むとリダイレクトされて、正常に表示されます。 SSL証明書の追加取得以外で、この警告を回避してリダイレクトする方法を教えていただきたいです。 環境:apache2.2 設定内容:httpd.confではなくvhost.confファイルに下記を記述。(見易いように、先頭空白を全角に変更してあります。) <Directory /var/www/html/*/public_html> Options FollowSymLinks AllowOverride All Order allow,deny Allow from all </Directory> <VirtualHost *:80> ServerName hoge.net Redirect permanent / https://hoge.net </VirtualHost> <VirtualHost *:443> ServerName hoge.net DocumentRoot /var/www/html/hoge/public_html SSLEngine on SSLCertificateFile ++++++++++++++++ SSLCertificateKeyFile ++++++++++++++++ </VirtualHost> <VirtualHost *:80 *:443> ServerName hige.hoge.net DocumentRoot /var/www/html/hige/public_html RewriteEngine on RewriteCond %{HTTPS} off RewriteRule . https://hige.hoge.net%{REQUEST_URI} [R=301,L] SSLEngine on SSLCertificateFile ++++++++++++++++ SSLCertificateKeyFile ++++++++++++++++ </VirtualHost> よろしくお願いいたします。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- lowrider_2005
- ベストアンサー率40% (1520/3748)
>SSL証明書の追加取得以外で、この警告を回避してリダイレクトする方法を教えていただきたいです ありません。 もしそれができたらSSLの意味ないです。 どちらのCAで取得されたか不明ですが、www.hoge.netでもhoge.netでも警告を出さないためにはワイルドカード証明書への変更を検討されてはいかがでしょうか。 そもそも、apacheのマニュアルに「名前ベースのバーチャルホストは SSL プロトコルの特徴により、 SSL セキュアサーバには使えません」と書かれています。 SSLサイトを2つ以上運用するならIPベースで分けるのが正攻法です。 (限られた環境であればやる方法はあるみたいですが)
補足
lowrider_2005さん 回答ありがとうございます。 環境を正確に書くべきでした。Apacheは2.2.15です。 なので、ネームベースでのSSLも可能と判断しました。 以下マニュアル引用: Name-based virtual hosting is usually simpler, since you need only configure your DNS server to map each hostname to the correct IP address and then configure the Apache HTTP Server to recognize the different hostnames. Name-based virtual hosting also eases the demand for scarce IP addresses. Therefore you should use name-based virtual hosting unless you are using equipment that explicitly demands IP-based hosting. Historical reasons for IP-based virtual hosting based on client support are no longer applicable to a general-purpose web server, unless you are using a mod_ssl version without SNI support (standard in Apache releases since 2.2.12).