名前ベースからIPベースのバーチャルホストに変更しました。

2015/01/11[公開]

自宅サーバーで複数サイトを公開するのにapacheのバーチャルホスト機能はとても便利ですね。

いままで、ここのブログはapache2のNAMEベースのバーチャルホストでサブドメインとして運用していました。

さらにサイト全体をhttpsから始まるSSL通信にしています。

いまどきのブラウザからのアクセスでは特に問題ないのですが、古めのブラウザからアクセスしようとすると、メインサイトのSSL証明書しか使えずにブラウザから怪しいぞと警告が出てしまいます。

ipbasevirtual1

こんな警告が出たら、×で閉じてしまいますよね。

ちゃんとした証明書を使っているのに、オレオレ証明書を使っているサイトと同じ扱いになってしまいます。

SSL証明書にはワイルドカード対応のモノもありますが、当サイトは一番安いRapid SSLを複数利用している前提の記事です。

このページの目次

スポンサー リンク

ネームベースのバーチャルホストじゃダメなんですか?

実際にネームベースのバーチャルホストでSSL通信にて運用していた結論ですが、いまどきのブラウザからのアクセスならばネームベースでもまったく問題なしです。

ネットで調べるとSSL通信を利用するには、IPベースのバーチャルホストが必要と出てくることが多いですが、2015年のいまどき、ブラウザ側が対応していることがほとんどです。

どのくらい古いブラウザだと警告が出るのか

  • WindowsだとIE8以前
  • Android2.3以前のandroid標準ブラウザ

MacとiOSは未確認ですが、だいたい同じ時期だと思います。

windows7でIE8のままというPCはほぼ無し、VistaでもIE9になっているハズ、XPが全台対象ですが2014年でサポート終了しています。

Android2.3やXPでも標準ブラウザ以外を利用していればOKです。

そう考えると、もうすでにそれほど気にしなくてもいいレベルと言えるのではないでしょうか?

ウチは環境に恵まれ、IPベースが利用可能でした。

前にも記事にしましたが、ウチはインターネット回線がSpaaqs光ホームタイプを契約していて標準でグローバルIPアドレスが5個も使えます。

しかし家庭内の諸事情から、サーバーは1台しか置けません。

spaaqs_homelan

 こんな構成で利用していまして、PCサーバーに直接グローバルIPを割り振り、もう一つのIPは家庭内LAN用ルーターで利用、残りのグローバルIPを3個を未使用だったのですが、実はLANポート一つで複数IPを利用できるというのを最近知りました。

なんと、追加設備なしでIPベースのバーチャルホストが利用できる恵まれた環境にいた事に最近気付きました。

 こんな自宅サーバーに最適で、NTTフレッツ光ホームタイプよりも安いspaaqs光ホームタイプですが、残念ながら新規契約受付終了となっています。

 一つのLANポートに複数のIPアドレスを指定する

 LANポートひとつにIPアドレスを複数設定することができるんですね、知りませんでした。

Linuxでもwindowsでも簡単にできるようです。

今回はDebianでの設定ですが、その他Linuxやwindowsでの方法はググって調べてください。

/etc/network/interfaces に追記

もともと固定IPの設定で一つ目のグローバルIPを設定していました。

IPアドレスはダミー値です。

auto lo
iface lo inet loopback

allow-hotplug eth0

iface eth0 inet static
 address 222.222.222.222
 netmask 255.255.255.0
 gateway 222.222.222.221

ここに2つ目、3つ目のIPアドレスを追加します。

auto lo
iface lo inet loopback

allow-hotplug eth0

iface eth0 inet static
 address 222.222.222.222
 netmask 255.255.255.0
 gateway 222.222.222.221

auto eth0:0
allow-hotplug eth0:0

iface eth0:0 inet static
 address 222.222.222.223
 netmask 255.255.255.0

auto eth0:1
allow-hotplug eth0:1

iface eth0:1 inet static
 address 222.222.222.224
 netmask 255.255.255.0

 2つ目のIPを、eth0:0

3つ目のIPを、eth0:1

と追加していきます。

参考:Debian Wiki

https://wiki.debian.org/NetworkConfiguration

再起動

今回の追記はサービスの再起動で有効になります。

/etc/init.d/networking restart

 確認はifconfigコマンドで、動作確認はpingが通ればOKです。

VirtualHostディレクティブの編集

debianの場合は、/etc/apache2/sites-available のディレクトリ内にあるファイルを編集します。

今回はすでに名前ベースのバーチャルホストで運用しているサブドメインをIPベースに変更する前提です。

defaultファイルか、default-sslファイル、もしくは自分で追加したファイル内の変更したいサブドメインのVirtualHostディレクティブから記述をコピーします。

ポート80とポート443で別々のファイルに記述が分かれていると思いますが、環境によります。

<VirtualHost *:80>
	ServerAdmin webmaster@localhost
    ServerName blog.ikt-s.com
        DocumentRoot /var/blog
 ~省略~
</VirtualHost>

<VirtualHost *:443>
	ServerAdmin webmaster@localhost
    ServerName blog.ikt-s.com
        DocumentRoot /var/blog
 ~省略~
</VirtualHost>

直接書き換えると、アクセス不能な時間が出てしまうので、別ファイルを作ってコピペして編集します。

<VirtualHost 222.222.222.223:80>
	ServerAdmin webmaster@localhost
    ServerName blog.ikt-s.com
        DocumentRoot /var/blog
 ~省略~
</VirtualHost>

<VirtualHost 222.222.222.223:443>
	ServerAdmin webmaster@localhost
    ServerName blog.ikt-s.com
        DocumentRoot /var/blog
 ~省略~
</VirtualHost>

 <VirtualHost *:80>の「*」を固定IPのアドレスに変更します。同じく<VirtualHost *:443>も変更します。

NAMEベースとIPベースのバーチャルホストは混在可能なので、混在した記述にしています。

a2ensiteで新しい設定ファイルを追加

新しく追加したVirtualHostディレクティブの設定ファイルを追加します。

a2ensite [ファイル名]

apache再起動

apache再起動後に設定が有効になります。

/etc/init.d/apache2 restart

ここでerror(エラー)やwarn(警告)が出るようであれば、sites-available内のファイルとports.confファイルの記述を見直しましょう。

DNSサーバーの登録変更

最後にDNSサーバーのAレコードを追加したグローバルIPに変更して、設定変更完了です。

私の場合は、お名前.comのDNS管理サービスを利用しているので説明は省きます。

動作確認

  1. XPのIE6
  2. windows7のIE8
  3. Android2.3のOS標準ブラウザ
  4. iPhone3GのOS3.1.3のSafari

私が確認できたのはこの4種類です。

いずれもいままで証明書の警告が出ていたブラウザでしたが、今回の設定後はちゃんと証明書が有効になっています。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です