(随時編集していきます。)
SLL化 .htaccess へのコード追記は IfModuleの中? 外?
IfModule外で問題無いようです。
はじめに
ブログを始めたら、常時SSL化というものをすることが鉄則みたいです。
以下の図はSSL化できた状態です。
SSL化するとGoogleからの評価も上がるようなので、単なるブログと言えどもSSL化はしておきたいところです。
このブログ(masa-a.com)も最初からSSL化されているわけではないので、2020年12月16日 あたりからSSL化を考え始めました。(そのついでにブログにまとめておこうと思い、この記事を書いています。)
以下の図は、SSL化を設定していない状態で、ドメイン名の左側に「▲印のアイコン」があります。
これを、冒頭の図のように鍵マークのある状態にしたいところです。
常時SSL化とは?
「SSL化」という言葉を検索すると大抵「常時SSL化」という言葉が目についたりします。この2つには違いがあるのでしょうか?
昔からインターネットを使っているは心当たりがあると思いますが、昔は殆どが「http://」から始まるURLだったと思います。買い物を購入するときになって「https://」となることがありました。
「常時」と頭につくと、「そのサイト内をネットサーフしている間は常にどのページでも『https://』で表示する」いうことなんだと思います。
詳しくは以下のリンクが参考になると思います。
今回の記事の内容について
今回の記事は、このブログ「masa-a.com」とは別のブログでSSL化を試みたときの忘備録です。
SSL化について、調べてみると以下の手順で行うみたいですが、STEP 1、までは昔に作業してしまっていたので、このブログでは、STEP 2 からの話が中心です。
大まかな流れ
今回、STEP 2から作業を進めたのですが、
ちょっとつまずきました。。。
この記事では STEP 2 以降のつまづいた部分に焦点をあてて記載します。
私が利用しているのは ネットオウル なので、それを前提に話をすすめます。
ちなにみネットオウル は、エックスサーバーとの関連会社らしいので、エックスサーバー利用の方も参考になるかと思います。
Netowlについてはコチラ
小規模なブログのようなサイトであれば、Netowl内の「スターサーバー」もしくは「スタードメイン無料サーバー」というサービスを使えます。
「スターサーバー」 の中に無料プランが3つあり、その中の一つに「WordPressが使えるタイプ」のプランがありますが、スマホ表示では広告が入ります。独自ドメインを取る場合は、別途申し込み必要です(通常料金)。
「スタードメイン無料サーバー」はドメインを契約(ネットオウルのサービス「スタードメイン」で有料)すると使える無料サーバーで、「スマホでも広告無し」のWordPressが使えます。同じNetowlでサーバーとドメインを取得するならお得だと思います。
【 余談 - SSL化が簡単なBlogger – 】
BloggerだとSSL化はボタン一つで設定できたような気がするので「SSL化だけのことを考えるとBloggerのほうが楽」ですが、「記事を作っていく場合はWordPressのほうが楽」です。
WordPressではBloggerほど簡単にSSL化できないです。
即席の簡易的なブログならBlogger のほうが良いと思います。
STEP 1 サーバーでSSL化の設定 (編集中)
Netowlに飛んで、以下の「SSL導入ガイド」をクリックするとSSL化についての簡単な説明があります。
公式サイト内の 別のページ では、
Webサイトを常時SSL化するには、「無料独自SSL」もしくは、「オプション独自SSL」のお申し込みが必要です。
とありました。
「無料独自SSL」とは? 「オプション独自SSL」とは?
これについても、前述した「SSL導入ガイド」のページで簡単な説明があります。公式サイト内の 別ページでは、
オプション独自SSLとは、証明書取得サービス『SSLボックス』にて取得したSSL証明書を導入できる機能
とありました。
サーバ契約に幾つか種類があるように、SSLにもいくつか種類があるようです。
単に、鍵マークにしたいだけなら、無料独自SSLで良さそうです。
エックスサーバーでも似たような説明がされていました。
簡単・手軽に使える 「標準機能」「即日発行」「無制限に設置可」【利用料金0円】
当サーバーで運営中のドメインに対して、無料・無制限で設置可能な独自SSLです。短時間で証明書の発行が可能で、簡単・手軽にセキュリティの強化ができます。
無料サーバーのサービスを提供しているNetowlとエックスサーバーの違いは?
ネットオウルの無料サーバーだと、ストレージ容量や高速機能が無いようですが初心者、これからブログを開設する人、にオススメだと思います。私はドメイン契約するだけて無料でついてくる「スタードメイン無料サーバー」を使ってます。
ネットオウルの無料サーバーは、利用可能ストレージが少ないなどの制約があるため安いようですが、より高機能の有料プランに変更も可能です。
エックスサーバーと同じスペックで使いたい場合は、Netowlでもエックスサーバーも同じような値段になるのではないかともいます。
STEP 2「.htaccess」の編集
Netowl内のページを見ると、
独自SSLの設定が完了した時点では、自動的に「https://~」のURLへ転送されません。Webサイトにおけるすべての表示を常時SSL化する場合は、以下の記述を.htaccessに追記します。
と説明があります。
ここで、.htaccess について簡単に確認してみます。
Webサーバーの挙動を決定する設定ファイル。
ディレクトリ単位で、アクセス制限やユーザー認証などを設定することができる。
(このファイルのあるディレクトリ以下のディレクトリに適用されるみたい。)
SSL化するには、この設定ファイルに「SSL化するためのコード」を貼り付けることになるようです。
しかし、そこでちょっと引っかかりました。。。
追記コードをどこに貼り付ければいいのかわからない。
公式サイトを見ると「.htaccessに以下の記述を追記します。」とありました。
RewriteEngine On
RewriteCond %{HTTPS} !on
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
エックスサーバーも同様の記載があったと思います。
なんだ、これコピペすればいいのか。簡単そうでよかった。
と思い、「.htaccess」ファイルを実際に開いてみると、、、
え? 結局、このコード どこに入れればいいの?
<IfModule></IfModule>の中? 外?
間違ってて、不具合出たら嫌だな。。。
となりました。(ネットオウルのファイルマネージャーからファイルを開きました。)
とりあえず検索して「参考にしたブログ」を見てみると
<IfModule>の外にコードを追記していたので、
あれ? <IfModule>の中にコードを追記、じゃないの??
HTMLとか編集してたら<div></div>の中に色々入れてるし、それと同じで、3行のコードを中に追記しないと有効にならないんじゃないの?
そもそも、IfModuleってなんだっけ?
と思いました。
とりあえず、昔に買ったサーバ構築の実際がわかる Apache[実践]運用/管理 (Software Design plus) 単行本(ソフトカバー) – 2012/3/23 をみたら<IfModule>の意味自体は何となくわかりましたが、結局どこにコードを追記すれば良いのかわかりませんでした。
気を取り直して、もう一度「.htaccess」ファイルを確認してみると、
何かコメントが書いてあることに気づきました。
んっ?! こ、これはっ!?
「BEGIN WordPress」から「END WordPress」 の間の部分は変更しても上書きされる??
<IfModule></IfModule>の部分が
「BEGIN WordPress」から「END WordPress」 の中にあるってことは、、、
さっきの三行ほどのコードをIfModule の間にコピペしても上書きされてしまって無効になる???
ということは、、、
参考にしているブログの通り、<IfModule>の【外】にコピペでいいんじゃないか??
と思いました。
結局、そのとおりのようです。
なーんだ。ちゃんと書いてあった。
<IfModule></IfModule>の「外」にコードをコピペでOK。
サイトにアクセスしてもエラー画面が表示されるということはありませんでした。
しかし、鍵マークにはなりませんでした。。。
コード追記したのに鍵マークがつかない。。。
下に続きます。
設定したのにうまくいかない。もうひと押しでした。
コード追記までいけば、すんなり鍵マークになると思っていましたが、ならなかったため、また調べました。
以下のSWELのサイトでは
「Really Simple SSL」がおすすめされていたので、「結局これを使えばよかったのかな?」と思いましたが、「本当はプラグインを使わずにSSL化するのがいい」となっているので、「いや、なるべく手動でしたい」とおもいまいた。
で、更に調べてみると、ある記事を見つけました。
その記事によると「Really Simple SSL」を使えば、不具合を解消できるというような書き込みがありました。
ということで、
結局「Really Simple SSL」を使いました。
これを使ったところ、うまくSSL化できました。
でも、このプラグインを使えば「.htaccess」のコード追加もしなくて良いというわけではなさそうです。後で確認したい。
記事を書く前からSSL化しておけば、このプラグインは使わなくても良いのではないかと思っています。試してないのでなんとも言えません。
SSL化のネックになていたのは「サイト内のページ間のリンクも http から https に 再設定しないといけない」のに、「.htaccess」のコード追加しただけでは、それがされない。というところにあったみたいです。 (多分)
そこで、この「Really Simple SSL」プラグインの出番。
これを使えば、それを簡単に再設定をしてくれて、やっとSSL化が完了するという感じみたいです。
今の所、SSL化したあと、そのプラグインを無効化しても鍵マークのままにできました。無効化する際に、設定のことについて聞かれるので 「httpsのままにする」を選びました。
と思ったら、2021-01-16 記事を更新したら、そのページだけ鍵マークになりませんでした。いろいろ触ったところ、吹き出しの画像のリンクが、SSL化するまえの http://– でリンクが貼られていたままだった事が原因のようです。上記プラグインを有効化したままだと、鍵マークはついていたのですが、無効化すると、鍵マークになっていませんでした。
Firefoxで確認すると、混在コンテンツという状態になっているようでした。以下に適当に検索したページを貼ります。
吹き出しの管理画面で、画像を選び直したところ、プラグインを無効化した後も、鍵マークがついたままになりました。
とりあえず無事、SSL化できました!
STEP 3 WordPressの設定変更
簡単だったっと思います。時間ができたら、編集して追加したいところです。
Serch Console への登録はどうなるのか?
Really Simple SSL を無効化するさいに、Serch Consoleが~~ と書いてあってので登録し直さないといけないのかなと思ったが、ドメインプロパティで登録したのであれば問題ないようだ。
以下の記事を参考にしました。