プラグインを使わずにWordPressのSSL対応させる設定と手順

はじめに

本日は、WordPressを使っているサイトでSSLを導入する場合の具体的な対応方法について紹介したいと思います。

なお、これから解説する内容は「今まで非SSLのサーバーでWordPressを運用してきて、この機会にSSLを導入したけど設定の仕方がわからない」という方を対象とした内容となります。

ちなみにSSL対応しているサーバーに、新規でWordPressをインストールする場合、下記の説明や手順は一切必要ありません。

WordPressサイトのSSL対応については下記の動画でも解説していますので、「文章を読むのはめんどい」という方はまずは動画をご覧いただければ幸いです。

プラグインを使わずにWordPressのSSL対応させる方法

WordPressでSSL設定をするには、プラグインを使ってサクッと対応する方法と、手動で対応する方法の2つがあります。今回はプラグインを使わずに手動で対応する方法について詳しく解説していきたいと思います。

まず、今まで非SSLの状態で使ってきたWordPressをSSL対応に切り替える場合、はじめに設定で2つの書き換えが必要です。

  • WordPress URL
  • サイトURL

次にテーマの内部および、コンテンツ内部において、以下の書き換えが必要です。

  • 外部CSS/JSのsrc属性
  • コンテンツ内部に埋め込んだメディア(画像や音楽、動画など)やifameタグのsrc属性

ステップ1. 設定前の事前チェック

事前に自分のWordPressの管理画面が、https://から始まるURLで正しくアクセス出来るかを確認しておいて下さい。

もしhttps://から始まるURLで404エラーや、何かしらのエラーが表示されてしまった場合には、サーバー側のSSL対応がまだ済んでいません。

この状態で書き換えてしまうと、最悪の場合、ウェブサイトが閲覧出来なくなりますので注意して下さい。

ステップ2. WordPressの設定を変更する

まずは最初にWordPressの内部設定から書き換えましょう。

管理画面にhttps://でアクセス出来ることが確認できたら、管理画面にログインし「設定」から「一般」を開きます。

  • WordPressアドレス(URL)
  • サイトアドレス(URL)

の2箇所をhttpsから始まるURLに書き換えます。

設定画面からURLを書き換える

はい、これだけで管理画面は常時SSLになりました!
おめでとうございます。

これだけでも既にSSLでサイトを閲覧出来るようになっているのですが、サイト内にhttp://で読み込んでいるJSやCSS、画像などの外部リソースがあると「Mixed Contents」という状態になり、ChromeやFirefox等のブラウザでは「オイオイ、SSLなのにSSL対応してないコンテンツが混ざってるじゃんよ」という趣旨の警告が表示されます。

この状態ではSSL対応が済んだとは言いがたい状態なので、次にその点を修正していきましょう。

ステップ3. 記事本文やカスタムフィールド、設定値を書き換える

記事の本文やカスタムフィールドを全て手動で書き換える、というのはあまり現実的ではありません。

こういったときに利用出来る便利な書き換えスクリプトが用意されているので、それを使ってイッパツで書き換えてしまいましょう。

Database Search and Replace script

上記に紹介するツールは、WordPressの移設の際などにも利用出来るスクリプトで、サイト内のデータベースに含まれる任意の記述を、指定した記述にイッパツで変換してくれるという、神のようなツールです。

WordPressのカスタムフィールドのデータは特殊な形式でDBに保存されるため、DBを直接書き換えるとカスタムフィールドのデータが全滅するという危ない罠があるのですが、そういった部分も正しく書き換えをしてくれるので、非常に便利です。

使い方は上記のサイトなどが詳しいので、詳細の解説は割愛するのですが、ポイントは2つです。

書き換えポイント
  • search for…フィールドに、http://から始まるサイトのドメインを入力する
  • replace with…フィールドに、https://から始まるサイトのドメインを入力する

間違えても、search for…フィールドに「http://」とだけ入力し、replace with…に「https://」とだけ入力して実行などという馬鹿なことはしないで下さい。

aタグのリンクや内部で管理している全てのhttp://という記述がhttps://に書き換わってしまいますので、想定外の不具合が発生すること間違いなし。

その場合、バックアップなどを取っていないとその時点で詰むので、実施前には必ず下記記事で紹介しているようなプラグインなどで、ウェブサイト全体(データベースのみでも)のバックアップを取得してから実施するようにしてください。

[kanren postid=”192″]

正しく上記の書き換えが成功すれば、サイト内に存在する全ての投稿の本文(カスタム投稿を含む)、カスタムフィールド、設定値において、自分のサイトのドメインがhttps://に書き換わっているはずです。

ただし、自分自身のサイト外から画像などを直接読み込んでいる場合、この方法ではまだ解決しません。

そういった場合、上記のツールでsearch for…フィールドに http:// とだけ入力し「dry run」をすることで、変更される箇所がどの程度あるか、そこが何処なのかを確認することができます。(間違えても「live run」しないように!

dry run で書き換わっていないポイントを検出

その情報を元に、手動で記事の本文などを書き換える必要があるでしょう。

ステップ4. テーマの修正を行う

本来、記事本文やカスタムフィールドに含まれている部分を修正すれば、ほぼほぼ完了するハズなのですが、たまに無作法なテーマがありまして、http://から直接外部リソースを読み込んでいるパターンがあります。

記事本文やカスタムフィールドを書き換えても、まだ警告が表示され「Mixed Contents」の状態になるようであれば、https://接続でサイトを開き、HTMLのソースを見て見ましょう。

そこでheadタグ内の外部CSSや外部JSの読み込みタグを確認し、src属性がhttps://から始まっているかどうかをチェックして下さい。

またヘッダーやフッター、サイドバーなど、テーマの共通部分として呼び出されている部分の画像やiframe等のsrc属性が、https://から始まっているかどうかを確認しましょう。

1つでもhttp://からの読込があるようでしたら、テーマのfunctions.phpかheader.php、footer.php等を開いて、http://から読み込んでいるリソースが無いかを確認して、それをhttps://に書き換える必要があります。

なお、aタグのhref属性でhttp://が含まれているというのは問題ないので、そこは無視して大丈夫です。

確認するべきはそれぞれのタグのsrc属性となります。

また1点注意として、

  • テーマの内部にhttp://から読み込んでいる部分がある
  • プラグインの内部にhttp://から読み込んでいる部分がある

といった部分の切り分けが難しい場合があります。

テーマの内部をくまなくチェックしても、まだhttp://からの読み込みが消えない!という場合、プラグインの可能性も否定出来ませんので、プラグインを停止させて確認を取る必要があるかもしれません。

プラグインを使って、WordPressのSSL対応を行う方法

Really Simple SSLプラグイン

次にプラグインを使ったSSL対応について紹介していきます。

プラグインを使ったSSL対応については、「全くWordPressの設定がわからない!」といった方や「若干速度が犠牲になってもイイからイッパツでとにかくSSL対応をしたいよ!」という方のみオススメします。

プラグインを使って、SSL対応を行う方法につきましては、下記の記事を参考にしてみてください。

プラグインで簡単!WordPressの常時SSL対応 | 常時SSL Lab. by Zenlogicのファーストサーバ株式会社

プラグインでSSL対応する場合の注意点

ちなみにプラグインを使った、SSL対応に関してですが、私的にはあまり推奨しません。

なぜなら運用しているURLというのはサイトの根幹に係わる部分でもありますし、この先SSLから非SSLに移行するということもまずあり得ないと思いますから、この程度のことはプラグインに頼らず、ネイティブに対応するべきでしょう。

上記のようなプラグインでの対応は、プラグインが動的にサイト内コンテンツを書き換えるという処理も含まれるので、ネイティブに対応するほうが、若干ですがアクセス速度的にも向上が見込めます。

なお、このプラグインで対応する方法は「SSL領域が非SSL領域と同一」であるという前提が必要です。

冒頭で解説したように、SSL領域と非SSL領域が同一ではない設定をしているサーバーの場合、プラグインでイッパツ解決!というのは出来ません。

この場合にはデータの移設も含んで対応が必要になりますので、差し支えなければ私たちにご相談下さい。

おわりに

プラグインを使わずに手動でSSL対応する場合、WordPress内部の情報を書き換えるのは若干手間がかかりますが、これからはSSL対応が必須になる時代が来るのは必須だと思います。

多少手間でも今のうちに対策をしておくことで、ユーザーに安心してサイトを利用してもらうことができるでしょう。

もしWordPressのSSL対応でお困りであればご相談に乗りますので、下記のフォームよりお気軽にご連絡ください。
※WordPress以外のシステムに関するSSL対応はお受けできませんので、予めご了承頂ければ幸いです。

ご相談方法

WordPressサイトのSSL対応に関するご相談は、こちらのWebサイトのチャット、もしくはお問い合わせフォームよりご連絡ください。

この記事を書いた人

家富正幸

インスパイアデザインの取締役兼、エンジニア。WordPressのテーマ・プラグイン開発を年間100件以上、独自のフレームワークを用いて開発をしています。