SNIで1台のサーバ上に複数のSSLサイトを運用 – 後編

実際に設定してみたた SNI

前回は、SNI(Server Name Indication)の技術的な概要と、その特徴について説明を行いました。

後編である今回は、新たにSNIに対応したさくらのレンタルサーバー スタンダードプランを利用して、実際にSNIを利用した独自ドメインのSSLの設定を行ってみたいと思います。

従来のさくらのレンタルサーバでは、独自SSL(IPアドレスベース)は、ビジネスプロプラン以上でのみ対応しており、1契約で1つのSSLサイトを運用できました。

それが、[今回のSNI SSL対応](http://www.sakura.ad.jp/function/security/original-ssl.html)により、スタンダードプラン1つで複数のSSLサイトを運用できるようになりました。

最安で月額515円から始められサーバプラン料金が抑えられることに加え、1サーバプランで複数のSSLサイトを運用できるので、サーバの運用コストを大幅に抑えられるようになりました。

この記事を通じて、「高コスト・面倒」だったSSLの設定・運用が、「低コスト・簡単」なものになってきたことを実感して頂ければと思います。

サイト構築の概要と前提

ここでは、さくらのレンタルサーバスタンダードプラン1台で、2つのサイトを運用することを想定してみます。1つはブログ、もう1つはECサイトです。

以下はSNIの設定が完了したサイトのイメージです。SNIの設定が完了すると、このようにURLがhttpからhttpsと表示されます。

なお、複数のSSLサイトを設定するための全体フローは下図のようになりますが、本記事の解説範囲は、「SNIの設定」以降の範囲となります。

CSRの作成から始まるSSL証明書の発行、および、ドメインの取得から始まるマルチドメインの設定に関する作業は終わっていることを前提としています。
これらの作業について、参考になるページをそれぞれ挙げておきます。

作業内容

1. ドメイン設定画面を開く

レンタルサーバの管理画面にログインしたら、ドメイン設定メニューから「ドメイン設定」をクリックします。

2. example1.jp のSSL証明書を設定

このようなドメイン一覧画面が表示されるはずです。
まずはexample1.jpのSSL証明書を設定するために、「登録」をクリックします。

続いて、「証明書のインストール」リンクをクリックします。

3. example1.jp のSSL証明書を送信

事前に発行されたSSL証明書の内容を入力(①)し、送信ボタン(②)を押します。

4. example1.jp のSSL中間証明書を登録

続いて中間証明書の設定を行うために、「中間証明書のインストール」をクリックします。

なお、発行されたSSL証明書の種類によっては、中間証明書の登録が不要なものもあります。
詳細は、SSL証明書発行元のドキュメントを参照して下さい。

5. example1.jp のSSL中間証明書を送信

SSL証明書の発行元から指定された中間証明書の内容を入力(①)し、送信ボタン(②)を押します。

以上でSSL証明書の設定は完了です。

6. example1.jp のSNI SSLを設定

続けて、SNI SSLの設定を行うために、「ドメイン設定」をクリックします。

ドメイン設定の画面で、「SNI SSLを利用する」を選択(①)し、送信ボタン(②)を押します。


以上で、example1.jpドメインに対するSNI SSLの設定が完了しました。

7. example2.jpの設定も同様に行う

example2.jp の設定も、以上の流れと同様に行います。
最終的に、ドメイン一覧は以下のようになります。

エンジニアとして感じたこと

筆者はエンジニアとして、数々のWEBサーバの設定を経験してきました。
エンジニアによって作業スタイルは異なると思いますが、私はコンソール、いわゆる「黒い画面」で設定ファイルを編集しながら設定作業を行うことが多いです。

一方で、本記事のようにWEBの管理画面から設定作業を行うのは久しぶりの経験で、コンソールを利用した設定作業には無いメリットも感じることが出来ました。

作業項目の比較に見る属人性の低さ

最も大きなメリットとして、運用作業に対する属人性が低くなる点が挙げられます。

SNIで複数サイトの構築を行うための作業項目を、コンソール経由での作業項目と比較する形で列挙してみました。

管理画面経由での作業 コンソール経由での作業
サブドメインの追加
  • 管理画面からサブドメインを追加
  • 設定ファイルにVirtualHostの定義を追加
  • 各VirtualHostに対応するディレクトリのパーミッションを確認
SNIに対応させる
  • 自動で対応済み
  • 設定ファイルでSNIを有効化
SSL証明書の配置
  • 管理画面からSSL証明書をアップロード
  • 秘密鍵を適切なパーミッションで配置する
  • SSL証明書を適切なパーミッションで配置する
  • 設定ファイルのVirtualHostの定義に、秘密鍵とSSL証明書のパスを追記する
中間証明書の配置
  • 管理画面から中間証明書をアップロード
  • 中間証明書を適切なパーミッションで配置する
  • 設定ファイルのVirtualHostの定義に、中間証明書のパスを追記する

管理画面経由での作業に比べ、コンソール経由での作業項目が多いことが分かると思います。
特に、パーミッション設定やファイル設置などの作業は、運用ルールを決めておかないと人によって内容がまちまちで、担当者が変わると混乱、、という状況になりがちです。

近年は、DevOpsと呼ばれる領域で、サーバ設定をコード化(プログラミング)して、属人性の少ない自動化されたプロセスを構築することも可能にはなっていますが、仕組みの構築・維持にも、それなりに高いスキルと時間が求められるのが現状です。

管理画面から証明書をアップロードするだけで設定が終わるというのは、設定作業の属人性が低くなるという点で、レンタルサーバの大きなメリットであると思います。

最後に

前編・後編の2回にわたって、SNIの解説記事をお送りしてきました。
SNIによってマルチドメインのSSL運用が楽になること、また、SNIのメリット・デメリットがご理解頂ければ幸いです。

さくらのレンタルサーバ スタンダードプランのように、低コストでSNI SSLを導入できるサービスも登場してきました。サーバ運用担当の方は、積極的にSNI SSLの導入を検討してみてはいかがでしょうか。

最後までお読み頂き、ありがとうございました。