196
196
# 2020-01-07 #464 and #486 "json was blank" (change all curl request to use POST-as-GET)
197
197
# 2020-01-08 Error and exit if rate limited, exit if curl returns nothing
198
198
# 2020-01-10 Change domain and getssl templates to v2 (2.15)
199
+ # 2020-01-17 #473 and #477 Don't use POST-as-GET when sending ready for challenge for ACMEv1 (2.16)
199
200
# ----------------------------------------------------------------------------------------
200
201
201
202
PROGNAME=${0##*/ }
202
- VERSION=" 2.15 "
203
+ VERSION=" 2.16 "
203
204
204
205
# defaults
205
206
ACCOUNT_KEY_LENGTH=4096
@@ -286,14 +287,15 @@ check_challenge_completion() { # checks with the ACME server if our challenge is
286
287
keyauthorization=$3
287
288
288
289
debug " sending request to ACME server saying we're ready for challenge"
289
- send_signed_request " $uri " " {}"
290
290
291
291
# check response from our request to perform challenge
292
292
if [[ $API -eq 1 ]]; then
293
+ send_signed_request " $uri " " {\" resource\" : \" challenge\" , \" keyAuthorization\" : \" $keyauthorization \" }"
293
294
if [[ -n " $code " ]] && [[ ! " $code " == ' 202' ]] ; then
294
295
error_exit " $domain :Challenge error: $code "
295
296
fi
296
297
else # APIv2
298
+ send_signed_request " $uri " " {}"
297
299
if [[ -n " $code " ]] && [[ ! " $code " == ' 200' ]] ; then
298
300
detail=$( echo " $response " | grep " detail" | awk -F\" ' {print $4}' )
299
301
error_exit " $domain :Challenge error: $code :Detail: $detail "
@@ -303,7 +305,13 @@ check_challenge_completion() { # checks with the ACME server if our challenge is
303
305
# loop "forever" to keep checking for a response from the ACME server.
304
306
while true ; do
305
307
debug " checking if challenge is complete"
306
- send_signed_request " $uri " " "
308
+ if [[ $API -eq 1 ]]; then
309
+ if ! get_cr " $uri " ; then
310
+ error_exit " $domain :Verify error:$code "
311
+ fi
312
+ else # APIv2
313
+ send_signed_request " $uri " " "
314
+ fi
307
315
308
316
status=$( json_get " $response " status)
309
317
@@ -1437,8 +1445,7 @@ send_signed_request() { # Sends a request to the ACME server, signed with your p
1437
1445
responseHeaders=$( cat " $CURL_HEADER " )
1438
1446
if [[ " $needbase64 " && ${response##* ()} ! = " {" * ]]; then
1439
1447
# response is in base64 too, decode
1440
- #! FIXME need to use openssl base64 decoder if it exists
1441
- response= $( echo " $response " | base64 -d)
1448
+ response= $( echo " $response " | base64 -d 2>&1 )
1442
1449
fi
1443
1450
1444
1451
debug responseHeaders " $responseHeaders "
0 commit comments