У меня есть скрипт, который пытается заменить сертификат 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: webdev@autoxxx.com.au" \
-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}
Попробовал предложение цитат, как в ответе на следующий вопрос, но все равно та же ошибка.
Почему в этом вызове cURL я получаю искаженный JSON в теле запроса?