У меня есть сценарий, который пытается заменить сертификат SSL моего сайта на Cloudflare. Certbot автоматически обновляет сертификат на локальном сервере от Letsencrypt каждые три месяца. Теперь сертификат SSL .pem, обновленный certbot, необходимо загрузить в Cloudflare с помощью его API.
PRIVATE_KEY="/etc/letsencrypt/live/autoxxx.com.au/privkey.pem"
CERTIFICATE="/etc/letsencrypt/live/aautoxxx.com.au/cert.pem"
# read from files
PRIVATE_KEY=`cat $PRIVATE_KEY`
CERTIFICATE=`cat $CERTIFICATE`
DATA='{"private_key":"'$PRIVATE_KEY'","certificate":"'$CERTIFICATE'","bundle_method":"ubiquitous"}'
curl -i \
-X PATCH "https://api.cloudflare.com/client/v4/zones/rCWR4i3A24NZEzI4dFLYLAhU7tUBtJUSYQkh/custom_certificates/iqXVG2FV8Cgj5FXGMexIoJovtFQx5UhecVya" \
-H "X-Auth-Email: [email protected]" \
-H "X-Auth-Key: pg5Q89JI33nsgdA9iZwPky3q" \
-H "Content-Type: application/json" \
-d "$DATA" --trace-ascii /dev/stdout
Но при запуске этого скрипта возникает следующая ошибка
{"success":false,"errors":[{"code":6007,"message":"Malformed JSON in request body"}],"messages":[],"result":null}
Пробовал предложение цитаты, как в ответе на следующий вопрос, но все та же ошибка.
Почему я получаю неправильный формат JSON в теле запроса в этом вызове cURL?