【Apache】バーチャルホストの設定について

このQ&Aのポイント
  • Ubuntu 14.04のApache 2.4.7で運用中のWebサーバで、https://aaa.comにアクセスがあった場合に、http://aaa.comにリダイレクトする方法を教えてください。
  • 現在、Apacheのバーチャルホストに異なるドメインのサイトを運用していますが、https://aaa.comにアクセスがあるとhttps//bbb.comのトップページが表示されてしまいます。解決策を教えてください。
  • Ubuntu 14.04のApache 2.4.7で運用中のWebサーバで、https://aaa.comにアクセスがあった場合に、http://aaa.comにリダイレクトする設定方法について教えてください。
回答を見る
  • ベストアンサー

【Apache】バーチャルホストの設定について

質問させていただきます。 Ubuntu 14.04 Apache 2.4.7 にて運用中のWebサーバがあります。 今、このサーバ上で http://aaa.com(非SSL) https://bbb.com(SSL) という2つの異なるドメインのサイトを運用しているのですが、 https://aaa.com とすると、警告が出た後、https//bbb.comのトップページが表示されてしまいます。 これをhttps://aaa.comにアクセスがあった場合、http://aaa.comにリダイレクトさせたいのですが、Apacheのバーチャルホストにてどのような記述をすればよろしいのでしょうか? 大変お手数ですが、お教えいただけると幸いです。

質問者が選んだベストアンサー

  • ベストアンサー
  • t_ohta
  • ベストアンサー率38% (5040/13167)
回答No.1

以下のような設定を追加するいけると思います。 ただし、aaa.comのサーバ証明書を用意しないと警告が出るのは止められませんし、非SSLへリダイレクトされますと言った警告も出てしまいます。 ========== <VirtualHost xxx.xxx.xxx.xxx:443> ServerName aaa.com SSLEngine on SSLCertificateFile /path/to/file.crt SSLCertificateKeyFile /path/to/file.key Redirect / http://aaa.com </VirtualHost>

amnet2012
質問者

お礼

なるほど、バーチャルホストの設定にリダイレクトを書いておけばいいのですね。 ありがとうございました。

関連するQ&A

  • ApacheによるバーチャルホストでのSSL通信設定

    Apacheでバーチャルホスト設定を行い、1台のサーバで複数のドメインを管理しようとしています。 今は、名前ベースで設定して運用しているため、SSL通信がそれぞれのドメインに対して行えないので、色々調べてみましたが、はっきりと把握できないので、お教え願えればと思います。 1.IPベースのバーチャルホストであればそれぞれのドメインでのSSL通信が可能でしょうか? 2.IPベースの場合、基本設定などは名前ベースと異なるのでしょうか? 3.IPベースのバーチャルホストでSSL通信を行う場合、Apacheは複数起動する必要があるのでしょうか? 4.バーチャルドメインで運用する場合、各ドメイン別のサーバ証明書はどのように設定などするのでしょうか? →単独であればサーバ証明の生成はわかります。 5.上記を実現するために参考になるサイト・書籍などあればお教え下さい。 以上、長文になりましたが、何卒よろしくお願いいたします。 完全な回答でなくとも、ヒントだけでも構いませんので、よろしくお願いいたします。

  • apacheのバーチャルホストの設定について

    XAMPPを一通りインストールして、apacheでバーチャルホストの設定を行っております。 環境:Windows2003server ApacheFriends XAMPP (Basispaket) version 1.7.1 + Apache 2.2.11 固定のグローバルIPアドレスは1つ持っており、仮に111.222.333.444としておきます。 バーチャルホストのドメイン名は2つ設定したいと思っており、 aaa.hogehoge.net bbb.hogehoge.net 他業者のDNSにて111.222.333.444をAレコードの値として、それぞれ割り当てしました。 ちなみに、hogehoge.netのAレコードは別のサーバーを当てています。 そこで、携帯から直接 http://aaa.hogehoge.netとhttp://bbb.hogehoge.net をアクセスしましたら、自社サーバーのC:/xampp/htdocs/にあるindex.htmが表示されました。 一応、名前解決は成功したとして、、、 念のため、Windowsのhostsに 111.222.333.444  aaa.hogehoge.net  bbb.hogehoge.net を追加しました。 apacheのメイン設定-httpd.conf ------------------------------ ServerRoot "C:/xampp/apache" Listen 80 ServerAdmin admin@localhost ServerName localhost:80 DocumentRoot "C:/xampp/htdocs/" ↓バーチャルホストのファイルをインクルード Include conf/extra/httpd-vhosts.conf ----以下、httpd-vhosts.confの中身 ホスト名を2つ設定 NameVirtualHost 111.222.333.444:80 <VirtualHost 111.222.333.444:80> ServerAdmin admin@aaa.hogehoge.net DocumentRoot C:/xampp/htdocs/aaa.hogehoge.net ServerName aaa.hogehoge.net ServerAlias www.aaa.hogehoge.net <Directory "C:/xampp/htdocs/aaa.hogehoge.net"> Options FollowSymLinks Includes ExecCGI AllowOverride None Order allow,deny Allow from all </Directory> </VirtualHost> <VirtualHost 111.222.333.444:80> ServerAdmin admin@bbb.hogehoge.net DocumentRoot C:/xampp/htdocs/bbb.hogehoge.net ServerName bbb.hogehoge.net ServerAlias www.bbb.hogehoge.net <Directory "C:/xampp/htdocs/bbb.hogehoge.net"> Options FollowSymLinks Includes ExecCGI AllowOverride None Order allow,deny Allow from all </Directory> </VirtualHost> 設定後、apacheを再起動して、再度携帯電話からhttp://aaa.hogehoge.netとhttp://bbb.hogehoge.netにアクセスしたのですが、C:/xampp/htdocs/にあるindex.htmが表示されてしまい、C:/xampp/htdocs/aaa.hogehoge.net/index.htm、C:/xampp/htdocs/aaa.hogehoge.net/index.htmが表示されません。それぞれのパーミッション自体は766になっているので、こちらは違うと思うのですが、バーチャルホストの設定が悪いのか何処が悪いのか、何か設定が悪いのか全くわからなくなりました。参考書のマニュアルを見ると、「バーチャルホストを設定すると、メインホストの設定が無効になる」と書いてあったので、それでもメインのホストが表示されてしまうということは、バーチャルホストの設定に問題があるのだと自分なりに察知しております。 どなたか、考えられる原因や心当たりある事がございましたら、ご教授をお願いします。

  • apacheのバーチャルホストについて

    恐れ入ります。 linuxでサーバーの運営をしてみようかなと思っているのですが、windows xp proで試しにapacheを入れてみてドメインを2つ取得してhttpd.confのバーチャルホストについて記述してみました。 その際に以下をつけたして新しいドメインでブラウザからアクセスしてみたら普通にアクセスできました。どこかのサイトでDNSサーバーを自分のlinuxにたちあげないといけないみたいなことが書いてあったのですが、linuxの場合はdnsサーバーをたちあげないといけないのでしょうか?教えてください。 <VirtualHost xxx.xxx.x.xx> ServerAdmin xxx@xxx.com DocumentRoot "C:\Program Files\Apache Group\Apache2\aaa" ServerName 新しいドメイン ErrorLog logs/dummy-host.example.com-error_log CustomLog logs/dummy-host.example.com-access_log common </VirtualHost>

  • Apacheのバーチャルホストの設定

    Apacheでいくつかのドメインをバーチャルホストに指定してIPアドレスを直接入力してた場合アクセスを拒否、可能であればApacheのサーバーであることを隠せる状態にしたいのですがどのように設定すればよいのでしょうか?

  • Apacheのバーチャルホストの設定について

    OS:Scientific Linux6.2 Apache/2.2.15 Apacheのバーチャルホストの設定について現在勉強しております。 参考にしたサイト:http://scientificsrv.com/apache-virtualhost.shtml 私が今悩んでいるのが、DocumentRootになります。 2つのサイトを以下のディレクトリーに入れています。 ドメイン ディレクトリ aaa.com /home/aaa/html bbb.com /home/bbb/html ここで、参考にしたサイトを元にしますと /etc/httpd/conf.d/virtualhost-aaa.conf ← メインホスト用バーチャルホスト設定ファイル作成 <VirtualHost *:80> ServerName aaa.com DocumentRoot /home/aaa/html </VirtualHost> /etc/httpd/conf.d/virtualhost-bbb.conf ← 追加ホスト用バーチャルホスト設定ファイル作成 <VirtualHost *:80> ServerName bbb.com DocumentRoot /home/bbb/html ErrorLog logs/virtual-error_log CustomLog logs/virtual-access_log combined env=!no_log </VirtualHost> と言うようになります。 ここで、DocumentRootはそれぞれ設定していることになります。 そうするとApacheの設定ファイルのDocumentRootはどのように設定したらいいのでしょうか? デフォルトでは以下のようになっています。 /etc/httpd/conf/httpd.conf  # DocumentRoot: The directory out of which you will serve your # documents. By default, all requests are taken from this directory, but # symbolic links and aliases may be used to point to other locations. # DocumentRoot "/var/www/html" # # This should be changed to whatever you set DocumentRoot to. # <Directory "/var/www/html"> # # Possible values for the Options directive are "None", "All", # or any combination of: # Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews # # Note that "MultiViews" must be named *explicitly* --- "Options All" # doesn't give it to you. # # The Options directive is both complicated and important. Please see # http://httpd.apache.org/docs/2.2/mod/core.html#options # for more information. # Options Indexes FollowSymLinks # # AllowOverride controls what directives may be placed in .htaccess files. # It can be "All", "None", or any combination of the keywords: # Options FileInfo AuthConfig Limit # AllowOverride None # # Controls who can get stuff from this server. # Order allow,deny Allow from all </Directory> このファイルの設定方法が分かりません。デフォルトのままでは、/var/www/htmlを使用することになっています。バーチャルホストの方で設定しているのでここの設定はしなくていいのでしょうか? また、 # This should be changed to whatever you set DocumentRoot to. # <Directory "/var/www/html"> では、htaccessやCGIの許可の設定などを行いますが、バーチャルホストの場合どこで設定すればいいのでしょうか? 勉強不足なのは重々承知していますが、何卒よろしくお願い致します。

  • apache バーチャルホスト

    “名前ベースのバーチャルホストを利用する” http://httpd.apache.org/docs/2.2/ja/vhosts/name-based.html#using に付いて、質問をさせてください。中ほどの行にある; 『たとえば、www.domain.tld を動かしていて、 さらにバーチャルホスト www.otherdomain.tld を追加するとしましょう。』 が今一理解できません。 たとえば登録済みのドメイン名が上記のようにdomain.tldとして、実際にウェブサイトをwww.domain.tld で運用していると仮定します。 www.sub.domain.tldをバーチャルホストとして使用できることは分かりますが、この追加するバーチャルホストの“www. otherdomain.tld”とは実際に何を示すのか教えていただきたいのです。 このドメイン名とは www.domain.tldと別に新たにwww.otherdomain.tldを登録して取得をした正式なドメイン名を示すのか、もしくは、バーチャルホストであるため他の人が登録をしていないドメイン名であればバーチャルとして使用して構わないと言うことなのかです。 前者であろうと推測しますがそれではバーチャルとは言わないのではとも考えています。 お願いします。

  • SSL構築中ですが、もうちょっとなんです。

    RedHat7.2、Apache/1.3.23でSSLを設定しております。 あと、httpd.confだけの設定なのですが、どうしてもうまくいきません。 http://www.aaa.com/とhttp://www.bbb.com/で aaa.comがデフォルトのサーバーでbbb.comをバーチャルホストとして設定しているとします。 https://www.aaa.com/をhttpsにすると問題ないのですが https://www.bbb.com/にアクセスすると https://www.aaa.com/に飛びます。 ドキュメントルートがaaa.comのディレクトリだからだと思うのですが、bbb.comも性格にSSLを使えるようにするにはどうすればいいのでしょうか? いわゆる他の仮想サーバーにも設定したいのです。 どなたか恐れ入りますがご教授おねがいします。 <VirtualHost _default_:443> documentRoot "aaa.comのディレクトリ" </VirtualHost>

  • Apacheの名前ベースのバーチャルホストについて

    Apacheのドキュメントを読むと「名前ベースのバーチャルホストでは、SSLプロトコルの特徴により、SSLサーバには使えない」とありますが、これは何故でしょうか? 名前ベースだと1つのIPアドレスに複数のホスト名を割り振るために、証明書的にまずいと言うことでしょうか?

  • XAMPP アパッチ URLの正規化設定について

    XAMPP アパッチ URLの正規化設定について質問いたします。 自宅サーバーにて XAMPPのアパッチのバーチャルホストを設定し3ドメインで運用しています。 先日 おかしなことに気がつきました。 症状はこのようになっています。 1、http://aaa.com/ 2、http://bbb.com/ 3、http://ccc.com/ 外部より1、2、3のアドレスでアクセスすると3サイトとも正常に開きます。 ところが 2番のアドレスにhttp://www.bbb.com/のようにwwwをつけてアクセスすると 1番のサイトが開いてしまいます。 3番のアドレスもwwwをつけると1番のサイトが開いてしまいます。 1番のアドレスにwwwをつけると1番が開きます?。 wwwをつけてもつけなくてもそれぞれのアドレスが開くようにしたく思います。 すみませんがどなたかご教授を宜しくお願いいたします。 ドメインはバリュードメインで取得しています。 DNSの設定は全ドメイン a * 111.222.333.444 となっています。 .htaccessに301リダイレクトの記述をしても間違っているのかうまく動きません。 httpd.confへ mod_rewriteの設定として LoadModule rewrite_module modules/mod_rewrite.so を記述し再起動後外部よりアクセスしてもwwwをつると 1番のサイトが表示されてしまいます。 このままではSEO対策に関してもよくないと思います。 自力解決をめざしましたがお手上げとなってしまいました。 どうか宜しくお願いいたします。<(_ _)>

  • Apacheでバーチャルホストの最大数は?

    お世話になります。 ApacheをWebサーバにして、バーチャルホスト構成をとろうと考えておりますが、このとき1台のApacheにて設定できるバーチャルホストの最大数ってあるのでしょうか? ちょっと調査したところ、明確なMaxホスト数は上限はないようですが、サーバ機の搭載メモリの容量によっては実質稼動可能なバーチャルホストには限界があるような記述を見た記憶があるのですが・・・ ご経験・知識をお持ちの方、ご教授願います。 よろしくお願いいたします。