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.転送設定」で設定できるようになりました。
コメント
初めまして、宜しくお願いします。
サクラサーバーで、https://化、無料ssl、リダイレクトの件で質問があります。
サクラサーバーで、マルチドメイン含め20個ありまして、wwwのマルチドメインを追加できません。この状態では、https://化は無理でしょうか?
困っています。
宜しくお願いします。
20個というのがサブドメインなのか独自ドメインなのかわかりませんが、
記事ではあくまでwwwありとなしで設定しているだけでマルチドメインが多ければそのドメインごとにSSLの設定をすればいいだけです。
aaa.digitalyze.net、bbb.digitalyze.net、ccc.digitalyze.netでも異なるドメインでもやることは変わりません。
上のコメント、おそらくサクラサーバーがドメイン追加20個までなので、それを越えてしまうのでどうすればいいのか、という質問だと思いますよ。
そしてそれの答えは「もう一つレンサバ借りる」or「サーバーのランクを上げる」だと思います。
ライトプランはマルチドメインが20個までですが、スタンダードプランだと100個まで追加が可能です。
はじめまして。
SSL化の手順について質問があります。
1.無料SSL証明書「Let’s Encrypt」の登録、までが終わった次の作業は
↓
2.htaccessにリダイレクトの設定、でしょうか?
その場合、
htaccessファイルに以下を追記して、ftpにてアップにすればよいでしょうか?
RewriteEngine on
RewriteCond %{HTTP_HOST} ^digitalyze\.net$ [OR,NC]
RewriteCond %{HTTP:X-Sakura-Forwarded-For} ^$
RewriteRule ^(.*)$ https://www.digitalyze.net/$1 [R=301,L]
>コジカミホ様
はじめまして。
そうですね。httpsでの接続が可能であることを確認した後でリダイレクトの設定になります。
当たり前ですが念のため、掲載したリダイレクトの設定ではこのサイトのドメイン(digitalyze.net)での例ですのでご自分のサイトのドメインに書き換えてください。