同一IPアドレスで複数ドメインにSSLを設定する方法
1つのIPアドレスで複数ドメインを運用する場合にSSLをどのように設定すればいいかを紹介
IPアドレスが1つの場合、SSLのバインディングにはIISの管理画面を利用することができません。
複数のドメインを利用してサイト運用をしようとした場合、それぞれのサイトにSSLを設定する必要があります。
方法としては2種類あります。
(1)サイト毎にSSLを発行し、サーバに設定
(2)マルチドメイン対応のSSLを発行し、サーバに設定
サイト毎にSSLを発行し、サーバに設定
(1)の場合、1つのサイトを運営する場合、1つのドメインに対してSSLを発行します。
そして、IISのSSL証明書画面から該当ドメインにSSLを設定してあげるとSSLでの運用が可能となります。
次に2つ以上のサイトを同じIPアドレスで運用する場合、IISのSSL証明書画面からバインディングしようとすると、バインディングできないことがわかります。
つまり、1つのIPアドレスには1つのSSL証明書しかバインディングできないのです。
これを解決するには、コマンドラインから以下のコマンドを利用してバインディングを行う必要があります。これによって1つのIPアドレスで複数のサイトをSSLを利用して運用できるようになります。
c:\Windows\System32\inetsrv>appcmd set site /site.name:"siteA" /+bindings.[protocol='https',bindingInformation='*:443:www.abcdefg.com']
上記のコマンドを実行すると、IIS上のsiteAに対してSSLが適用されます。
これをサイト分行うことにより全てのサイトをバインドできます。
このあたりは、ネット上でなかなか情報がない部分ですので、サーバ管理者としては押さえておきたいTipsです。
マルチドメイン対応のSSLを発行し、サーバに設定
セクティゴ(旧コモド)のようなサービスを利用してマルチドメイン対応のSSLを発行すると、同一IPアドレスの複数のサイトにIISの管理画面からバインディングすることができます。
費用的に非常に安くなりますが、運用開始後に、一部サイトを別のサーバに移動したい場合には、マルチドメイン対応SSLをそのままエクスポートして別サーバに設定する必要があります。
つまり、1サイトだけ移動したいのに、全てのサイト分のSSLを別サーバにも設定することとなってしまいます。
また、サイト訪問したユーザーがブラウザでSSL情報を表示した際に、マルチドメインに設定している全てのサイトがユーザーに見えてしまいます。
つまり、他の運営サイトを非公開にしておきたい場合にマルチドメインを使うと非公開にできないことになり、ユーザーにはあなたが他にどのサイトを運営しているかわかってしまいます。
そういったことは避けたい場合は、(1)で説明した個別にそれぞれのドメインに対してSSLを発行して運用することになります。(費用がかかりますが)