さくらのVPSでCentOS7のサーバーを構築する 番外編…SNI SSL

本ブログの「さくらのVPSでCentOS7のサーバーを構築する」シリーズ本編では、サーバーの起動からWordPressが稼働を開始するところまでの手順を解説しました。今回は番外編として、「SNI SSL」の導入方法を解説します。

もくじ

  • 番外編…IPアドレスベースSSL
  • 番外編…SNI SSL
    • 「SNI」とは何か
    • 下準備
    • SSLサーバー証明書の設置・設定
  • 番外編…Apache再起動時に秘密鍵のパスフレーズ入力をサボる方法
  • 番外編…「Let’s Encrypt」でSSL/TLSサーバー証明書を無料で取得する

「SNI」とは何か

SNIは「Server Name Indication」の略称であり、SSL/TLSの拡張仕様です。これを使うことにより、1つのグローバルIPアドレスで複数のSSL/TLSサーバー証明書を使い分け、複数の(異なるドメイン名の)WEBサイトをHTTPS化することができるようになります。

技術的な解説はWikipediaやSNIで1台のサーバ上に複数のSSLサイトを運用 – 前編 – さくらのナレッジなどに任せますが、SNIを使うことによって

  • 1つのIPアドレスで複数のSSL/TLSサーバー証明書を使い分ける事ができる(SNIを使わない場合は1つのIPアドレスにつき1つの証明書しか使えない)
  • 名前ベースバーチャルホストで複数の(異なるドメイン名の)WEBサイトを運用している場合でも、それぞれが自前のSSL/TLSサーバー証明書を使えるようになる
ことを理解すればOKです。

但し、(2018年地点ではほぼ無視できるとはいえ)SNI非対応ブラウザも存在する、ということは頭の片隅に入れておきましょう。詳細はServer Name Indication – Wikipediaなども参考にしてください。WindowsならVista以降はだいたい大丈夫です。

下準備

ApacheでSSL通信を行うためには、「OpenSSL」と「mod_ssl」が必要です。OpenSSLはデフォルトでインストールされているので、mod_sslを入れます。

また、ファイアウォールでHTTPSの通信を許可する必要があります。

SSL/TLSサーバー証明書の入手に関しては、「番外編…IPアドレスベースSSL」及び「番外編…「Let’s Encrypt」でSSL/TLSサーバー証明書を無料で取得する」で解説していますので、そちらを参照してください。

SSLサーバー証明書の設置・設定

ここからの解説では、以下に示す設定のWEBサイト2つをHTTPS化します。実際に設定を行う場合は、各自設定を自分の環境用に読み替えてください。また、例によってPHPをCGIモードで稼働させますが、その設定の詳細は「CentOS+Apache2.4+PHP7+SuexecでPHPを(ユーザーディレクトリで)CGIモード化する」で解説します。

HTTPS化するWEBサイトの設定情報

WEBサイト1(ユーザー名hoge)…SNI非対応環境からのアクセスではこちらを優先

  • ドメイン名 secure.example.com
  • ドキュメントルート /home/hoge/public_html/piyo/
  • SSL/TLSサーバー証明書のパス /etc/httpd/conf/ssl/secure.example.com/hogehoge2017.crt
  • 中間CA証明書のパス /etc/httpd/conf/ssl/secure.example.com/hogehoge2017.cer
  • 秘密鍵のパス /etc/httpd/conf/ssl/secure.example.com/hogehoge2017.key

WEBサイト2(ユーザー名fuga)

  • ドメイン名 secure.example.net
  • ドキュメントルート /home/fuga/public_html/bar
  • SSL/TLSサーバー証明書のパス /etc/letsencrypt/live/secure.example.net/cert.pem
  • 中間CA証明書のパス /etc/letsencrypt/live/secure.example.net/chain.pem
  • 秘密鍵のパス /etc/letsencrypt/live/secure.example.net/privkey.pem

設定ファイルの作成

設定ファイル自体はmod_sslインストール時に自動生成されるので、そちらを使ってもいいでしょう。このページでは設定ファイルを自分で作りますが、自動生成されたものと突き合わせれば十分対応できると思います。何はともあれ、設定ファイルを開きます。

設定ファイルは以下のようになります。

書き終えたら保存しましょう。

Apache再起動

SSLサーバー証明書の配置、設定ファイルの作成が終わったら、Apacheを再起動します。

無事に再起動できれば、設定完了です。ちなみに、SSL Server Test (Powered by Qualys SSL Labs)ではSSLの設定の安全性を確かめることができます。

このブログを応援する・寄付する

当ブログでは暗号通貨による寄付を募っております。

モナゲボタン モナゲボタン

Bitcoin:

Monacoin:

Litecoin: