You are making incorrect assumptions. When you are accessing the /index.php?option=com_akeeba&view=json URL directly
without a JSON-encoded, encrypted message to the backup engine you are
supposed to get the nondescript error message "JSON decoding error". This is the same error you would get if the encrypted message was using the wrong secret key or contained invalid data. This is done on purpose for security reasons. As we said in August 2014 this change mitigates a Padding Oracle vulnerability which had been present in the JSON API's cryptography. That and the enforced complexity of the secret key keep you safe.
Which brings us back to what could possibly be wrong. The message returned by Akeeba Remote CLI tells you that it cannot communicate properly with your server.
First of all, your site is HTTPS. Most likely you are using a modern SSL certificate with SHA-256 signatures and / or a server which tries to force TLS 1.1 or later. This is great and secure. However, does your local PHP installation support them? :) It'd need to have been compiled against new (less than 18 months old) versions of libcurl and openssl.
Another thing is the cryptography used to communicate to the site. Both the machine of Remote CLI (client) and the server of your site (server) must support Rijndael-128 encryption through the mcrypt or OpenSSL module for PHP. If either was updated and no longer supports that you're out of luck.
So I'd first try to update the PHP on the machine you are running Remote CLI from.
You already checked if a SEF component gets in the way? I am unsure if you tried using Remote CLI after disabling SEF. You should try it anyway.
Moreover, there could be a web server module (like mod_security2) or an extension on Joomla! which modifies the JSON payload sent by Remote CLI or completely blocks the request. You can pass the --verbose flag to see the raw server response. If the server rejects the request you will see "cURL error" printed under the URL. If it's a soft error, i.e. you have the wrong secret key or an encryption failure, you will see something like this:
Raw Response: {"encapsulation":1,"body":{"status":401,"data":"\"Authentication failed\""}}
Parsed Result: stdClass Object
(
[encapsulation] => 1
[body] => stdClass Object
(
[status] => 401
[data] => "Authentication failed"
)
)
This will at least help you narrow down the issue.
Nicholas K. Dionysopoulos
Lead Developer and Director
🇬🇷Greek: native 🇬🇧English: excellent 🇫🇷French: basic • 🕐 My time zone is Europe / Athens
Please keep in mind my timezone and cultural differences when reading my replies. Thank you!