【发布时间】:2018-12-13 11:08:19
【问题描述】:
我有一个脚本试图在 Cloudflare 上替换我网站的 SSL 证书。 Certbot 每三个月从 Letsencrypt 自动更新本地服务器上的证书。现在,需要使用其 API 将由 certbot 续订的 SSL .pem 证书上传到 Cloudflare。
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}
尝试了在回答以下问题时引用的建议,但仍然是同样的错误。
Why do I get a malformed JSON in request body in this cURL call?
【问题讨论】:
标签: api ssl cloudflare lets-encrypt certbot