一开始我是这么写的

bash
1
2
3
4
5
6
7
8
9
10
11
12

CERT_PATH=$(cat ./netlify_cert/domain.com.cert.pem)
KEY_PATH=$(cat ./netlify_cert/domain.com.key.pem)
FULLCHAIN_CERT_PATH=$(cat ./netlify_cert/domain.com.fullchain.pem)


curl -X POST \
-H "Authorization: Bearer $NETLIFY_API_KEY" \
-d "key=${KEY_PATH}" \
-d "ca_certificates=${FULLCHAIN_CERT_PATH}" \
-d "certificate=${CERT_PATH}" \
"https://api.netlify.com/api/v1/sites/${NETLIFY_SITE_ID}/ssl"

这么写看着没用什么问题,但是-d命令是默认进行urlencode的,这样子我的证书就会改变。需要改成--form-string才行。

这种默认就urlencode的,curl -h中又没说明,真的好坑