Getting Jetpack to work with WordPress

For what must be many months now, my local installation of WordPress has been hassling me to install the Jetpack plugin.

It sounded sorta useful, so I dutifully clicked on Install and was told:

register_http_request_failed

… with a ‘GnuTLS recv error (-9): A TLS packet with unexpected length was received.‘ error.

Having looked around to try to find a solution, the only suggestion appeared to be to rebuild PHP or to wait for the stabilisation of the newest PHP development branch. This turns out to be wrong, however, and the solution is both simple and maddening…

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.