Linux

さくらVPS + nginx + SSL証明書でHTTPS通信

さくらVPSにnginx + wordpressの環境を構築してちょこちょこ遊んでおります。近いうちにHTTPSで接続できるようにもしたいなぁと思ってたのですが、手つかずのまま大分時間が経過してしまいました。

今回はSSL証明書を導入してHTTPSで接続できるように設定していきます。

環境(前提)

  • CentOS 7 (さくらVPS)
  • WordPressの環境を設定済み(httpでアクセス可能)

全体の流れ

作業的には下記3ステップとなります。

 1.サーバ上で秘密鍵とCSRの作成
 2.SSL証明書の購入
 3.サーバに証明書を設置

事前準備

まずは事前準備です。下記ソフトをインストールします。

秘密鍵とCSRの作成

ココでは下記作業を行います。

  1. 秘密鍵作成のための擬似乱数ファイル(rand.dat)を生成
  2. 疑似乱数ファイルから秘密鍵を生成
  3. 秘密鍵からCSRを作成

CSR生成時の設定項目は下記です。下記以外の項目については入力は任意です(Enter連打でOK)。

CSR生成時の入力項目記載内容設定例
Country Name (2 letter code) [XX]:国別番号JP
State or Province Name (full name) :都道府県名Tokyo
Locality Name (eg, city) [Default City]:市区町村名Arakawa
Organization Name (eg, company) [Default Company Ltd]:組織名Sakura
Organizational Unit Name (eg, section) :部門名VPS
Common Name (eg, your name or your server’s hostname) []:コモンネーム(FQDN)centos7.com

入力内容はご自身の環境に合わせて変更ください。作成した秘密鍵はなくさないように。
ここで生成したnewcsr.pemの中身がSSL証明書の購入時に必要になりますのでtextファイル等にコピペしましょう。

SSL証明書の購入

こちらからSSL証明書を購入します。今回はRapidSSLを選択します。

https://ssl.sakura.ad.jp/

プランと決済方法を選択します。私は3年プランを選択しました。

続いて先ほど生成したCSRの内容を入力します。

後はさくらインターネットさんからメールが来るのを待ちます。

サーバー証明書の設置

サーバー認証

SSL証明書の購入手続きが完了すると下記のようなメールが届きます(抜粋)。会員ページより認証ファイルを取得して指定のパスに配置しましょう。

まず、認証ファイルを取りに行きます。

続いて認証ファイルを設置します。

設置後にブラウザからアクセスして中身が見えたらOKです。この状態でしばらく待つと認証が完了し再度メールが届きます。認証が終ったらサーバー上からファイルは削除しましょう。

証明書の設置

認証が完了すると下記のような、SSLサーバ証明書が発行された旨のメールが届きます。

  • SSLサーバ証明書
  • 中間CA証明書

メールの記載に従って上記2点を取ってきます。会員ページよりSSLサーバ証明書、メールに記載されているリンクから中間CA証明書をそれぞれ取得します。

SSLサーバ証明書

認証が完了していると状態が変わり利用期間が表示されています。

中間CA証明書

取得した証明書をサーバー上で結合し配置します。

これで必要なファイルはそろいました。

nginxの設定

秘密鍵とSSLサーバ証明書をnginxのコンフィグに合わせて配置します。

このままnginxを再起動すると秘密鍵のパスワード入力が出来ずに失敗します。なので秘密鍵からパスフレーズを削除します。

nginxの設定が完了したらコンフィグ内容を確認して再起動します。

接続確認

nginxを再起動後にhttps付きでサイトにアクセスし、緑色の鍵マークが表示されればOKです。

鍵マークが表示されない(ブラウザに怒られる)、アクセスできない等が発生した場合はnginxのコンフィグ、ファイアウォールの設定、Wordpressの設定を見直してみてください。