発表した「非SSL通信(httpsではない)のサイト全てに警告を表示する」というもの。本日は、WordPressを使っているサイトでSSLを導入する場合の具体的な対応方法について紹介したいと思います。これから解説する内容は「今まで非SSLのサーバーでWordPressを運用してきて、この機会にSSLを導入したけど設定の仕方がわからない」という方を対象とした内容となります。ちなみにSSL対応しているサーバーに、新規でWordPressをインストールする場合、下記の説明や手順は一切必要ありません。プラグインを使わずにWordPressのSSL対応させる方法WordPressでSSL設定をするには、プラグインを使ってサクッと対応する方法と、手動で対応する方法の2つがあります。今回はプラグインを使わずに手動で対応する方法について詳しく解説していきたいと思います。今まで非SSLの状態で使ってきたWordPressをSSL対応に切り替える場合、はじめに設定で2つの書き換えが必要です。URLサイトURL次にテーマの内部および、コンテンツ内部において、以下の書き換えが必要です。設定前の事前チェック事前に自分のWordPressの管理画面が、https://から始まるURLで正しくアクセス出来るかを確認しておいて下さい。https://から始まるURLで404エラーや、何かしらのエラーが表示されてしまった場合には、サーバー側のSSL対応がまだ済んでいません。この状態で書き換えてしまうと、最悪の場合、ウェブサイトが閲覧出来なくなりますので注意して下さい。WordPressの設定を変更するまずは最初にWordPressの内部設定から書き換えましょう。管理画面にhttps://でアクセス出来ることが確認できたら、管理画面にログインし「設定」から「一般」を開きます。WordPressアドレス(URL)サイトアドレス(URL)の2箇所をhttpsから始まるURLに書き換えます。設定画面からURLを書き換えるはい、これだけで管理画面は常時SSLになりました!おめでとうございます。Contents」という状態になり、ChromeやFirefox等のブラウザでは「オイオイ、SSLなのにSSL対応してないコンテンツが混ざってるじゃんよ」という趣旨の警告が表示されます。この状態ではSSL対応が済んだとは言いがたい状態なので、次にその点を修正していきましょう。記事本文やカスタムフィールド、設定値を書き換える記事の本文やカスタムフィールドを全て手動で書き換える、というのはあまり現実的ではありません。いったときに利用出来る便利な書き換えスクリプトが用意されているので、それを使ってイッパツで書き換えてしまいましょう。interconnect/it上記に紹介するツールは、WordPressの移設の際などにも利用出来るスクリプトで、サイト内のデータベースに含まれる任意の記述を、指定した記述にイッパツで変換してくれるという、神のようなツールです。WordPressのカスタムフィールドのデータは特殊な形式でDBに保存されるため、DBを直接書き換えるとカスタムフィールドのデータが全滅するという危ない罠があるのですが、そういった部分も正しく書き換えをしてくれるので、非常に便利です。DB」が良い!使い方は上記のサイトなどが詳しいので、詳細の解説は割愛するのですが、ポイントは2つです。with...に「https://」とだけ入力して実行などという馬鹿なことはしないで下さい。aタグのリンクや内部で管理している全てのhttp://という記述がhttps://に書き換わってしまいますので、想定外の不具合が発生すること間違いなし。その場合、バックアップなどを取っていないとその時点で詰むので、実施前には必ず下記記事で紹介しているようなプラグインなどで、ウェブサイト全体(データベースのみでも)のバックアップを取得してから実施するようにしてください。postid=”192′′]正しく上記の書き換えが成功すれば、サイト内に存在する全ての投稿の本文(カスタム投稿を含む)、カスタムフィールド、設定値において、自分のサイトのドメインがhttps://に書き換わっているはずです。自分自身のサイト外から画像などを直接読み込んでいる場合、この方法ではまだ解決しません。run」をすることで、変更される箇所がどの程度あるか、そこが何処なのかを確認することができます。書き換わっていないポイントを検出その情報を元に、手動で記事の本文などを書き換える必要があるでしょう。テーマの修正を行う本来、記事本文やカスタムフィールドに含まれている部分を修正すれば、ほぼほぼ完了するハズなのですが、たまに無作法なテーマがありまして、http://から直接外部リソースを読み込んでいるパターンがあります。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://からの読み込みが消えない!という場合、プラグインの可能性も否定出来ませんので、プラグインを停止させて確認を取る必要があるかもしれません。SSLプラグイン次にプラグインを使ったSSL対応について紹介していきます。プラグインを使ったSSL対応については、「全くWordPressの設定がわからない!」といった方や「若干速度が犠牲になってもイイからイッパツでとにかくSSL対応をしたいよ!」という方のみオススメします。プラグインを使って、SSL対応を行う方法につきましては、下記の記事を参考にしてみてください。Zenlogicのファーストサーバ株式会社プラグインでSSL対応する場合の注意点ちなみにプラグインを使った、SSL対応に関してですが、私的にはあまり推奨しません。運用しているURLというのはサイトの根幹に係わる部分でもありますし、この先SSLから非SSLに移行するということもまずあり得ないと思いますから、この程度のことはプラグインに頼らず、ネイティブに対応するべきでしょう。上記のようなプラグインでの対応は、プラグインが動的にサイト内コンテンツを書き換えるという処理も含まれるので、ネイティブに対応するほうが、若干ですがアクセス速度的にも向上が見込めます。このプラグインで対応する方法は「SSL領域が非SSL領域と同一」であるという前提が必要です。冒頭で解説したように、SSL領域と非SSL領域が同一ではない設定をしているサーバーの場合、プラグインでイッパツ解決!というのは出来ません。この場合にはデータの移設も含んで対応が必要になりますので、差し支えなければ僕らにご相談下さい。お問い合わせフォームおわりにいかがだったでしょうか?プラグインを使わずに手動でSSL対応する場合、WordPress内部の情報を書き換えるのは若干手間がかかりますが、これからはSSL対応が必須になる時代が来るのは必須だと思いますので、多少手間でも今のうちに対策をしておくことで、ユーザーに安心してサイトを利用してもらうことができるでしょう。1ヶ月ほどは猶予がありますが、1ヶ月なんて気がつけば一瞬・・早め早めに対策をして、安心して眠れるようにして下さい。WordPressのSSL対応でお困りであればご相談に乗りますので、下記のフォームよりお気軽にご連絡ください。※WordPress以外のシステムに関するSSL対応はお受けできませんので、予めご了承頂ければ幸いです。まさゆきWebデザイナー、Webディレクター、Webアプリケーションのプログラミング等の経験を経て独立。インスパイアデザインの取締役、兼エンジニア。まさゆき2018年6月16日WordPress絶対にやっておきたいプラグインを使ったWordPressのセキュリティ対策WordPressのセキュリティ対策には、大まかにわけて下記のようなものがあります。まさゆき2018年9月11日この投稿へのコメントコメントはありません。コメントをキャンセルメールアドレスが公開されることはありません。*サイト次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。この投稿へのトラックバックトラックバックはありません。URLわいパンダわぷログ管理人とある制作会社に飼われているパンダ。社長に記事を書けと命じられているが、自分で書くのがめんどうなので密かにゴーストライターを雇ってる。家富正幸(いえとみまさゆき)WordPressエンジニア社長にこき使われているだけあってWordPressのスキルには相当な自信を持つ。エクスカリバーと称した自前のライブラリを日々磨き、数多くの案件を回す。DESIGN.inc。