さくらレンタルサーバーの無料SSL化と、SNI SSLでhttpからhttpsへのリダイレクト設定

googleがSSLを推奨するので必要に迫られたわけでないですが、とりあえず、さくらのレンタルサーバー(ベーシックプラン)のSSL化対応をしました。
有料だと採算が合わないので…、今回は無料で利用可能な Let’s Encrypt SSL の証明書を使い、コマンドライン不要の簡単な設定にて対応しました。

設定の流れ

かんたんに Let’s Encrypt SSL を登録するにあたり、SSLボックス を使用しました。
Let’s Encrypt SSL は有効期限が3ヶ月短いのでご注意下さい

環境

  • さくらのレンタルサーバ(スタンダードプラン)
  • 独自ドメイン
  • hexoにてサイト生成

SSLボックスの会員登録

まず、ネットオウルのアカウントを持っていなかったら、こちらから 新規会員登録を行ってください。

SSLボックスにてSSL証明書発行

  1. 管理ツールへログイン
  2. 左メニューの「新規取得」 > 「その他のサーバーで利用する」選択
    SSLボックス管理画面
  3. フォームに必要事項記入
    下記、入力の参考として下さい
    新規取得フォーム
  4. ドメイン所有者確認
    「トークンファイル」を使った方法だと、ダウンロード ⇒ サーバーにアップロード で認証できるので、楽かと思います。トークンファイルアップ後に、「所有者確認」をクリックし認証完了後に、「証明書を発行する」をクリックすると証明書の発行・取得が完了します。
    ドメイン所有者
  5. 証明書情報確認
    「CERT(SSL証明書)」、「中間証明書」、「秘密鍵」が確認できます。この後の、さくら側の設定で使います。
    証明書情報

さくらサーバー管理画面での設定

  1. さくらのコントロールパネルにログイン
  2. ドメイン設定に進み、「登録」クリック
    ドメイン設定
  3. 先ほど発行した「秘密鍵」をアップロード
    秘密鍵アップロード
  4. 証明書のインストールに先ほどの「SSL証明書」をペースト、送信
    SSL証明書送信
  5. 中間証明書のインストールへ進み、中間証明書を送信
    中間証明書設定
  6. ドメイン設定に戻り、「変更」と進み、「SNI SSLを使用する」に設定
    SNI SSLを使用する

参考:簡単・無料でさくらのレンタルサーバーに独自SSLを導入する方法

リダイレクト設定

http環境も生きている状態かと思いますが、折角SSL化したので、http を https へ.htaccessを使いリダイレクトの設定を行います。
設定はお好みですが、下記の設定をしておきました。

1
2
3
4
5
6
7
8
9
10
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_URI} !^/robots.txt$
RewriteCond %{REQUEST_FILENAME} !404error.html$
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteCond %{ENV:HTTPS} !^on$
RewriteCond %{HTTP:X-SAKURA-FORWARDED-FOR} ^$
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</IfModule>


参考:さくらのSNI SSLでhttp→httpsリダイレクト