WordPressでJetpackを導入している時にロックされた時の対処法
Jetpackのセキュリティ設定の中の「総当たり攻撃からの保護」が原因でログインできなくなる症状が時々報告されている。

曰く、
Jetpackがログインページをロックしました。
「お客様のIPアドレス(xx.xx.xx.x)はセキュリティ違反の可能性があるため、フラグが立てられました。ログインのロックを解除するには、特殊リンクをメールで自分自身に送信します。さらに詳しく」
と出てきてWordpressの管理者のメールアドレスを入力させられる。
そもそも管理者のメールアドレスなんか覚えてない場合が多い。
覚えてたとして、メールを送信してきても、その「特殊リンク」とやらをクリックすると
Google Chromeでは
{“error”:”Bad Request”,”message”:”Invalid input.”}

FireFoxで
error “Bad Request”
message “Invalid input.”

などと表示され、全然ロックを解除できない。
解決法は3つあるのでそれぞれ紹介。
解決法1:Wordpress.com から IPのセーフリストに追加
まず調べると出てくるのは、Wordpressにログインして、管理画面の「総当たり攻撃からの保護」の欄にセーフIPを記入しろと言われる。
しかし、そのログインができねんじゃー!である。
まあ…一時的にスマホを使ってログインしてもいいのだが。
Akismetなどを利用している場合など、高確率で WordPress.com のアカウントを持っているかと思う。
WordPress.com からも同様にセーフリストにIPを記入することができる。
WordPress.com のアカウントなど無い!もしくはあるかもしれんが忘れたわ!という人は無理なので、次の解決法2か3を参照のこと。
まず、Wordpress.com からログインする。

ログイン後、左上の「My Sites」へ移動。

問題のブログが表示されていればOKだが、されていなければ、その下の「Switch Site」で、該当ブログを選択。

下の方の「設定(Settings)」をクリック。

セキュリティ(Security)の中の「総当たり攻撃からの保護(Prevent brute force login attacks)」の下向き矢印をクリックして開く。

ここの「IPアドレスのホワイトリスト(Whitelisted IP addresses)」に自分のIPを記入する。
ちなみに自分のIPはすぐ上に記載されている。
※ここで注意が必要なのだが、JetpackのセキュリティではじかれているIPとこのIPが一致していない場合は、自分のIPではなく、サーバーのIPをはじいている場合がある。
この場合はサーバーのIPのロック画面に記載されている。(xx.xx.xx.x)も合わせて記入しておこう。
これで解決できれば完了。以下の解決法は見なくていい。
WordPress.com のアカウントとブログのリンクがうまくいってない場合は、設定ができない場合もあるので、その時は解決法2か3を試してみること。
解決法2:wp-config.phpにセーフIPを記入
FTPソフト、またはWebサーバーのファイルが見れる場所から、wp-config.php をダウンロード。
テキストファイルなどで開いて、中ほどの空白行(/* */とか書いてない場所)に下記のコードをコピペして上書きでアップロードしなおす。
define('JETPACK_IP_ADDRESS_OK', 'X.X.X.X');
x.x.x.xの部分を自分のIPにすること。

こんな感じ。色々書いてあるものは、サーバーや環境によって結構違うので、注意されたし。
これでログインできるようになる。
ログインした後は、管理画面から、Jetpackの設定で「総当たり攻撃からの保護」欄のホワイトリストIPに改めて追加しておく方が無難。
※この方法では、wp-config.phpに記載したIPアドレス1個しか、セーフリストに載らない。複雑な環境下などで、複数のIPアドレスを記載する必要がある場合は、下記を参照。
解決法3:プラグインのjetpackごと一時無効化
色々あって、どうしても無理な場合は最後の手段。
FTPソフトなどで、Webサーバーにつなぎ、wp-content/plugins/jetpack
の「jetpack」のフォルダ名を変更する。例えば「jetpack_backup」などに。
するとプラグインの読み込み自体がなくなるので、セキュリティ設定も死に、無事ログインできるようになる。
ログインできるようになった後は、WordPress.comのアカウントを作成した後で、「解決法1」の方法で複数のセーフIPを登録する。
最後に「jetpack_backup」などのフォルダ名を元の「jetpack」に戻すと、jetpackの他の機能も含めて元に戻ってくれる。
上記の3つの方法のうちどれか1つで確実に解決できるはずだ。