こんにちは。GUMIです。今回はWordPressの備忘録としてさくらインターネットで「Let’s Encrypt」を使って無料でhttpsに対応する方法を残していきたいと思います⭐
さて、まずhttpsとは何か。皆さんが見ているサイトのURLの先頭部分がhttpとhttpsという二つ分類されており、その中でも暗号化されサイト自体のセキュリティが高い事を意味するのがhttpsを使ったサイトです。
SSLにもランクや保護される内容の違いはあるので、扱う情報が個人情報・クレジットカード情報など、強固なセキュリティが必要なもの、OV・EV証明書を利用するものは他社の証明書を利用しましょう。利用できるのはDV認証(ドメイン認証)です。
まずはバックアップを取る
こういった作業をする時は、面倒ですが必ずバックアップを取りましょう。SSLの設定はWordPressなどを使っている場合、レイアウト崩れを起こしたりします。そんな時、バックアップを取っていないと悲惨です。
- FTPソフトorサーバーコントロールパネルなどからフォルダをダウンロードしておく
- データーベースのバックアップを取っておく
- BackWPupなどバックアップのプラグインを利用する
一番簡単な方法は3.BackWPupなどのプラグインでバックアップを取る方法です。好みにもよりますが必ずデータの復帰は出来るようにしておきましょう。
SSLを有効にする方法
- ①サーバーコントロールパネルからドメイン/SSL設定をクリック
- ②設定したいドメインの隣に登録をクリック
- 無料SSLの設定へ進むをクリック
- 無料SSLを設定するをクリック
これで申し込みは完了です!ただ、SSLは発行されるのに時間がかかるので反映されるまで1-2時間程度時間をおきましょう。
ドメイン/SSL設定画面でドメインのところが画像のようにSNI/表示/更新が表示されればSSLの発行完了です。
さくらインターネットでは、ドメインを追加すると自動的にマルチドメイン化されます(wwwあり/wwwなし両方のURLが生成される)ドメインの設定で「マルチドメインとして使用する(推奨)」に設定されていると、.htaccessで、wwwありもなしもwwwなしと判別されてしまい無限ループが起こってしまう可能性があります。のでURL正規化しましょう。
なので「wwwを付与せずマルチドメインとして使用する(上級者向け)」に設定を変更します。※この設定はリダイレクトする場合必要ですがリダイレクトしない方は必要ありません。
- ドメイン/SSL設定>変更をクリック
- wwwを付与せずマルチドメインとして使用する(上級者向け)にチェック
- 画面下の送信をクリック
で、ここからなんですが…wwwを付与せずマルチドメインとして使用するの設定にしても、さくらサーバーの方でエラー画面が用意されているため、wwwありのページにアクセスするとエラーページが表示されてしまう=この設定を有効にしただけではwwwありのページが無くなるわけではないという点が注意です。
なので、このページを表示させないためにリダイレクトの処理が必要です。
ですがドメイン設定しているフォルダの.htaccessに設定しても.htaccessの設定は残念ながら効きません。アクセスされるのはwwwありのURLのため、このエラー画面が出てしまいます。
この問題はさくらのApacheのポートが80のためだそうなんですが、通常の処理だとうまくいかないので別の設定が必要です。今回はwwwなしに統一するURL正規化の方法を下記に記載します。
- ドメイン/SSL設定>新しいドメインの追加
- サブドメインを追加します
- ドメイン追加後は反映に最大48時間かかるのでゆるりと待ちましょう
- ドメインが追加されたらこのドメインにも最初の方法でSSLを設定します
- ドメイン/SSL設定>wwwを付与せずマルチドメインとして使用する(上級者向け)
- マルチドメインの対象のフォルダをご指定して下さいのところにフォルダを指定する
- (例:/no-wwwやnowwwなどフォルダ名は好きに決めて大丈夫です)
- サーバコントロールパネル左側のファイルマネージャーをクリック
- 「no-www」というフォルダを作成する
- .htaccessファイルが既に存在している場合は下記のコードを入力する
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.○○(自分のドメイン名)\.com$ [OR,NC]
RewriteCond %{HTTP:X-Sakura-Forwarded-For} ^$
RewriteRule ^(.*)$ https://○○(自分のドメイン名).com/$1 [R=301,L]
</IfModule>
上記の○○(自分のドメイン名)の部分には自分が使っているドメイン名に変更して下さい。
.htaccessファイルがない場合
- 左上の表示アドレスへの操作
- 一番下のアクセス設定をクリック
- パスワード制限を使用するにチェック>下のOKをクリック
- .htaccessファイルが出来ますのでダブルクリックする
- デフォルトでこんな内容が表示されますが、全て選択>消去します
- 下記のコードを入力します
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.○○(自分のドメイン名)\.com$ [OR,NC]
RewriteCond %{HTTP:X-Sakura-Forwarded-For} ^$
RewriteRule ^(.*)$ https://○○(自分のドメイン名).com/$1 [R=301,L]
</IfModule>
保存すれば完了です!お疲れ様でした!今回は長くなってしまいましたのでこのへんで。またwwwありで統一する方法についてや、SSL証明書にエラーが出る事もあるので、そのへんの備忘録もまとめて後日記載するかもしれないです。
GUMIでした⭐
GUMI
最新記事 by GUMI (全て見る)
- 【4/29~5/5】GameVketに出展致します! - 2021-04-28
- 【Windows10】クリップボードの履歴機能を有効化する方法 - 2021-04-25
- 【Windows10】iPadとWindowsでファイル共有する方法【iPad】 - 2021-03-31