こんにちは。今日は開発中にやらかしたミスと、その解決方法を備忘録として残しておきます。同じところでつまずいている人の参考になれば嬉しいです。

何が起きたのか

Localを使ってWordPressサイトを開発していたんですが、何を血迷ったのか、ローカル環境なのにHTTPSでアクセスしようとしてしまいました。

その結果、ブラウザに表示されたのがこちら。

この接続ではプライバシーが保護されません
攻撃者が、mysite.local 上のあなたの情報(パスワード、メッセージ、クレジット カード情報など)を不正に取得しようとしている可能性があります。
net::ERR_CERT_AUTHORITY_INVALID

怖いメッセージですよね。でも安心してください。これは単純に「HTTPSで接続しようとしたけど、SSL証明書がないよ」って言われてるだけです。

問題の本質

ローカル環境でHTTPSを使うには、ちゃんとしたSSL証明書の設定が必要なんですよね。でも開発中のローカル環境なら、普通にHTTPで十分です。

つまり、https://mysite.local ではなく http://mysite.local でアクセスすればいいだけの話でした。

ただ問題なのは、WordPressのデータベース内に「サイトのURLはHTTPSだよ」って設定が保存されちゃってること。だからブラウザで手入力でHTTPにしても、自動的にHTTPSにリダイレクトされちゃうんです。

解決方法

Localには便利なデータベース管理ツールが最初から入っているので、それを使います。

手順

  1. Localアプリを開く
  2. 対象のサイトを選択する
  3. 右上にある「Database」タブをクリック
  4. 「Open Adminer」または「Adminer」というボタンをクリック

すると、ブラウザでAdminerという画面が開きます。これがデータベースを直接いじれるツールです。

  1. 左側のメニューから「wp_options」というテーブルを探してクリック
  2. ページ上部にフィルター機能があるので、「option_name」で「siteurl」を検索
  3. 見つかった行の「編集」をクリック
  4. 「option_value」の値を https://mysite.local から http://mysite.local に変更
  5. 保存ボタンをクリック

同じ手順で「home」という項目も探して、同じようにHTTPSからHTTPに変更します。

これで完了です。

ブラウザで http://mysite.local にアクセスすると、無事に表示されるようになりました。

なぜこうなったのか

WordPressは「サイトのURL」をデータベースの wp_options テーブルに保存しています。具体的には以下の2つです。

  • siteurl: WordPressのコアファイルがある場所
  • home: サイトのトップページのURL

この2つがHTTPSになっていると、どこからアクセスしても自動的にHTTPSにリダイレクトされちゃうんですね。

もっと簡単な方法もある

もしAdminerの操作が難しそうと思ったら、wp-config.phpというファイルを直接編集する方法もあります。ただ、初心者にはAdminerの方が視覚的でわかりやすいかなと思います。

まとめ

ローカル環境では基本的にHTTPで十分です。わざわざHTTPSにする必要はありません。本番環境に上げるときにHTTPSにすればOKです。

もし同じエラーに遭遇したら、焦らずにデータベースの設定を確認してみてください。大抵はURLの設定を間違えてるだけなので、簡単に直せますよ。

それでは、良い開発ライフを。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です