2017年10月17日よりさくらインターネットの提供する「さくらのレンタルサーバ」にて無料SSL証明書「Let’s Encrypt」を設定できる機能が利用可能になりました。無料SSLの導入自体は簡単でボタンをクリックするだけの作業ですが、httpでアクセスしてもhttpsにリダレクト、さらにwwwなしでアクセスしてもwwwありにリダイレクトという両方の条件でリダイレクトするのが若干面倒だったのでまとめておきます。

ドメイン/SSL設定の変更

サーバコントロールパネルのドメイン/SSL設定よりドメイン設定を確認します。
通常はおそらく下記のように独自ドメインとさくらのサブドメインの2つを登録していると思います。

ドメインの設定で「マルチドメインとして使用する(推奨)」に設定されていると、htaccessにて%{HTTP_HOST}を取得するときにwwwありもなしもwwwなしと判別されてしまい無限ループが起こります。
そこで「wwwを付与せずマルチドメインとして使用する(上級者向け)」を設定します。設定後wwwでのアクセスが一時的にできなくなるので注意してください。

ドメイン一覧に戻り、新ししいドメインの追加ボタンをクリックして「2. さくらインターネットで取得したドメインを使う」よりドメインを選択、サブドメインを指定にチェックを入れます。

サブドメインにwwwを入力してドメインを追加します。
ドメイン一覧にwwwありのドメインが追加されます。

この設定はwwwありとなしをリダイレクトする場合に必要な設定なのでリダイレクトしない場合は不要です。

無料SSL証明書「Let’s Encrypt」の登録

先ほどのドメイン一覧より証明書の登録をクリック、「無料SSLの設定へ進む」、Let’s Encryptの利用ポリシーへの同意した「無料SSLを設定する」をクリックして登録終了です。しばらくすると登録したメールアドレス宛に登録完了のメールが届くので届いた時点で使用可能になっています。
この作業をwwwなし、wwwあり両方で登録します。

どちらもhttps://~でアクセスできれば完了です。

htaccessにリダイレクトの設定

リダイレクトの設定です。
前述のドメイン設定をしないとループしてエラーになってしまいます。

https&wwwありにリダイレクト

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_HOST} ^digitalyze\.net$ [OR,NC]
RewriteCond %{HTTP:X-Sakura-Forwarded-For} ^$
RewriteRule ^(.*)$ https://www.digitalyze.net/$1 [R=301,L]
</IfModule>

https&wwwなしにリダイレクト

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.digitalyze\.net$ [OR,NC]
RewriteCond %{HTTP:X-Sakura-Forwarded-For} ^$
RewriteRule ^(.*)$ https://digitalyze.net/$1 [R=301,L]
</IfModule>

※digitalyze.netの部分は自分のドメインに変えてください。

WordPressでSSL化したい場合は常時SSL化プラグインを使うのが簡単です。

現在は管理画面から設定可能

現在は管理画面のドメイン設定から、「HTTPS転送設定」、「www.転送設定」で設定できるようになりました。