Jetpack could not contact WordPress.com: token_http_request_failed. This usually means something is incorrectly configured on your web host.

For me it turns out that PHP is, as expected, fine – and the problem lies with the (external) transport that WordPress is trying to use. And it also turns out that there is a developer plugin which allows easy updating of the transports available to WordPress. The solution that worked for me was:

  1. Either manually download and install the Core Control plugin, or use the WordPress web-interface to search for “core control” and install the plugin automatically;
  2. Activate the new plugin, which will add a “Core Control” option to the Tools side-bar menu for Admin users – select this option;
  3. You should now see a page with a list of several modules – tick the “HTTP Access Module” and click “Save Module Choices”;
  4. A new link will then appear at the top of the same page, next to “Main Page”, named “External HTTP Access” – select this;
  5. From the first section of options, select “Disable Transport” for “cURL“.

At this point, Jetpack will now allow registration and finally stop nagging!

It is worth noting, however, that having cURL disabled prevents Akismet from being able to contact its servers, so once Jetpack is registered the above sequence should be reversed to re-enable cURL and, to be safe, disable Core Control so as not to accidentally break anything else. Once registration has been successful, Jetpack seems to be happy to continue working even with cURL as the active transport.