SSL証明書をインストールする(自分でやればこんなに激安!)

Google が HTTPS(SSL/ TLS) を検索順位を決めるシグナルとして使用することが発表されてからSSL対応が気になる今日この頃ですが、まさにサーバ立ち上げのこのタイミングこそがSSL導入のベストタイミングと言えるのではないでしょうか?

VPSサーバならば自分でSSL証明書をインストールすることが出来ますので(と言うか自分でインストールするしかないんだけど)、格安の証明書を購入して一年わずか数百円でサイトをSSL化してしまいましょう!

サーバ内での事前準備

秘密鍵を生成する

まずはVPSサーバ内で秘密鍵というものを作ります。

Apache の設定ファイルのパスに移動します。

秘密鍵、CSR、証明書などを格納するディレクトリを作っておきます。

秘密鍵を生成します。(新規ではなく更新の場合は既存のファイルを上書きをしないように注意!)
秘密鍵のファイル名は任意で良いのですが、ドメイン名とその年の年号などを含めると、分かりやすいし上書き防止になるのでお勧めです。
例)hogehoge.com.2015.key

パスワードを決めるよう求められますので、パスワードを入力します。
確認のため、再度同じパスワードを入力します。
※ ここで入力するパスワードを忘れてしまうと証明書を使用することができなくなるのでご注意を。

CSRを生成する

CSRとは、ドメイン所有者が認証局に提出する署名リクエスト(Certificate Signing Request)です。

次のようにコマンドを入力するとCSRが生成されます。
./ssl.key/hogehoge.com.2015.key という秘密鍵から、./ssl.csr/hogehoge.com.2015.scr というCSRファイルを作る例です。

パスワードを入力後、以下の項目を入力するよう求められますので、半角英数字で入力していきます。

フィールド 説明
Country Name 国を示す2文字のISO略語を入力。 JP
State or Province Name 組織が置かれている都道府県を入力。 Tokyo
Locality Name 組織が置かれている市区町村を入力。 Shibuya-ku
Organization Name 組織の名称を入力。 HogeHoge Corp.
Organization Unit Name 組織での部署名。 指定がない場合は – (ハイフン)を入力。 Sales
Common Name ウェブサーバのFQDNを入力。
King SSL で購入する場合、「www」付きを指定しておくと、「www」有りと無しの両方に対応できるので「www」付きが吉。
www.hogehoge.com
Email Addres 入力不要。
A challenge password 入力不要。
An optional company name 入力不要。

生成されたCSRファイルの内容を Webmin で開いてコピーします。
例)/etc/httpd/conf/ssl.csr/hogehoge.com.2015.csr

↓これはCSRの一例です。これをコピーしないでください。

CSRは破線の行も含めて全てコピーする必要があります。

SSL証明書を購入する

SSL証明書の購入を申し込む

わずか年額900円(3年契約なら717円!)でSSL証明書が購入できる KingSSL を利用してみましょう。
暗号強度256bit&ブラウザ対応率99%以上と、格安ですが機能は十分です。
24時間対応の上、約2分程で証明書を受け取れる点も魅力です。

KingSSLの申込ページに進みます。

KingSSL

いろいろなプランがありますが、大抵は年額900円のSHA-2を新規で申し込めば良いと思います。(10個以上のサブドメインに対してSSLを導入したい場合は、ワイルドカードを選択する方がお値打ちになると思います。)

先程コピーしたCSRをペーストします。

KingSSL申込ページ

CSRをペーストして次へ進みます。

下段の「乗り換え元証明書」は空白のままでOKです。
(乗り換えの場合は、使用中の証明書をペーストします。有効期限が引き継がれ延長されますのでお得です。)

CSRをペーストしたら次の画面に進みます。

内容を確認して問題が無ければさらに次に進みます。
もし誤りがあれば、秘密鍵の生成からやり直します。

kingssl

内容を確認して誤りがないかチェックします。

証明書を取得するには、ドメイン所有者の承諾が必要なので、ドメイン所有者宛に承認の手続きに関するメールが届きます。

リストの中から、ドメイン所有者のメールアドレスを選択します。

先の記事でメールアドレスを取得する際に、adminなどのメールアドレスを取得する必要があると書いたのですが、それがここで必要になるわけです。)

承認メールを受信するメールアドレスを選択します。あらかじめ、いずれかのメールアドレスを受信可能にしておく必要があります。

承認メールを受信するメールアドレスを選択します。あらかじめ、いずれかのメールアドレスを受信可能にしておく必要があります。

契約期間とお客様情報を入力します。

お客様情報を入力します。

お客様情報を入力します。個人でも購入できますのでご安心を。

その後、クレジットカード情報を入力し、内容を確認したら申込完了となります。

承認メールを受信して承認する

ドメイン所有者宛に「KingSSL/承認手続きのお知らせ」というメールが届きますので、本文に書かれたURLにアクセスして承認ボタンを押します。

証明書をサーバに保存する

承認後、しばらくすると申込者の元へ「[KingSSL]サーバ証明書発行のお知らせ」というメールが届きます。

証明書というと、何か特殊なデータのように思われるかも知れませんが、英数字が連なった文字情報です。メールの本文には、「証明書」と「中間証明書」と「証明書+中間証明書」が記載されています。

今回は「証明書」と「中間証明書」をサーバにインストールしていきます。

Webmin で Apache の設定ファイルの置かれたディレクトリ内に、ssl.crt というディレクトリを作ります。

/etc/httpd/conf/ssl.crt/

このディレクトリ内に、証明書を保管することにします。

Webmin で新規ボタンを押して新しいテキストファイルを作り、ファイル名は「hogehoge.com.2015.crt」とします。(ドメイン名はあなたの所有するドメイン名に変更してください。)

メールの本文から証明書をコピーして、作成したファイルに張り付けて保存します。

続いて中間証明書をインストールします。同じ場所に「intermediate_sha256_G2.cer」というファイルを作ります。先程と同じように、メールから中間証明書をコピーして貼り付けます。

ここまで作業を行うと以下のような構成になっていると思います。

Apacheの設定ファイルを書き換える

名前ベースのバーチャルホストでSSLを使う

今回は、複数のドメインでSSL通信を実現するために、名前ベースのバーチャルホストでSSLを使用できるようにします。

この方法は、ひとつのIPアドレスで複数のドメインをSSL化できますが、ブラウザがSNIに対応している必要があります。WindowsXPのIE8や、古いアンドロイドはSNIに対応していませんので、「信頼できない通信~~」という類の警告が表示されてしまいます。(WindowsXPでも、ChromeやSafariを使えば問題ないようです)

SNIに対応していないブラウザであっても、複数のドメインの内最初にSSLを設定したドメインだけは警告表示されることなくアクセスできますので、ドメインが1つだけの場合は問題ありません。また、重要なメインサイトが最初に読み込まれるよう設定して、その他のドメインについてはXP+IE8のSSLをあきらめるという選択も有りかと思います。

今のところ(2015年2月現在)さくらVPSはグローバルIPが1個しか付与されませんので、複数のドメイン全部についてXP+IE8+SSL通信したいという場合は、ドメインの数だけVPSサーバをレンタルするか、複数IPが追加できる他のサービスを探す必要があります。

ssl.conf を編集する

Apache の SSL設定ファイルを編集します。

/etc/httpd/conf.d/ssl.conf

  1. <VirtualHost _default_:443> 以降をザックリ全部削除します。
    (後で別ファイルでVirtualHostを設定します。)
  2. SNIに未対応のブラウザ対策として、以下の一行を追加します。
    SSLStrictSNIVHostCheck off
  3. 名前ベースのバーチャルホストを使用できるように宣言します。
    NameVirtualHost *:443

バーチャルホスト設定ファイルを編集する

バーチャルホストの設定ファイルをSSLに対応させます。
先程の hogehoge.com 用に作成した hogehoge.com.conf を編集します。

/etc/httpd/conf.vh/hogehoge.com.conf

SSL用のバーチャルホスト設定を書き足します。

  • 40行目: SSLを有効にする
  • 42~44行: 秘密鍵と証明書、中間証明書を指定する
  • 46行目: セキュリティに問題があるSSL2とSSL3を無効にする
  • 47行目: OpenSSL や Apache のバージョンによって最適値が異なります。以下のジェネレータを活用すべし。

SSL用の設定ファイルを作る場合は、こちらのジェネレータがとても便利です。Apache のバージョンや OpenSSL のバージョンを入力すると適切な設定例を提示してくれます。
Mozilla SSL Configuration Generator

Mozilla SSL Configuration Generator

Mozilla SSL Configuration Generator

尚、Apache と OpenSSL のバージョンの調べ方は以下の通りです。

HSTSとは以下のような仕組みです。特に理由がなければ、Enabledにチェックを入れて良いと思います。

「このサイトにはHTTPではなくHTTPSで必ず接続するように」と、サーバーがブラウザに指示するHTTPヘッダー。この指示を受け取ったブラウザは、その情報を記録しておき、以降は、そのサイトに対してアクセスするのにHTTPを使わず自動的にHTTPSで接続するようにする。

「Modern」「Intermediate」「Old」のどれを選択するかによって、セキュリティの強度が変わります。それに伴ってサポートするブラウザが変わります。Modern を選択するとセキュリティは高まりますが、最近のブラウザしか対応できなくなりますので、Intermediate あたりが適当なのではと思います。

Apache を再起動する

設定ファイルの書き換えが完了したら、Apache を再起動します。
restartでは正常に読み込まれない場合があるので、一度止めてから起動し直します。

SSL証明書のパスフレーズの入力を求められますので、秘密鍵を作った時のパスワードを入力します。

無事に再起動が成功すれば完了です!

再起動の度に毎回パスフレーズの入力が必要なのですが、それが面倒だという場合は自動化することも可能です。「SSL パスフレーズ 省略」というキーワードでググってみてください。

設定後のセキュリティチェックは以下のページからどうぞ。

Qualys SSL Labs – SSL Server Test

以上で、ウェブサーバの設定は完了です!

KingSSL以外にも、格安のSSL証明書はあります。

以下の格安SSL証明書もお勧めです↓

  1. さくらのVPSでウェブサーバ、インストールマニュアル
  2. さくらVPSを申し込んで起動する
  3. パソコンにターミナルエミュレータをインストールする
  4. ユーザーを登録する
  5. ファイヤーウォールを設定する
  6. Webminをインストールする
  7. ApacheとPHPをインストールする
  8. MySQL、phpMyAdminをインストールする
  9. Apache + PHP を FPM/FastCGI で動かす
  10. ApacheをWorkerモードに切り替え&APCをインストールする
  11. 独自ドメインの取得&メールアドレスを設定する
  12. Apache の VirtualHost を編集する
  13. SSL証明書をインストールする(自分でやればこんなに激安!)
  14. SFTPでファイルを転送する
  15. DropboxでVPSサーバを丸ごと全自動バックアップする

スポンサーリンク
広告(大)
広告(大)

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

スポンサーリンク
広告(大)

コメント

  1. […] SSL証明書をインストールする(自分でやればこんなに激安!) […]