From 0713570b87bab57d0f163fce553a54894aa45e13 Mon Sep 17 00:00:00 2001 From: moucho <1095644+moucho@users.noreply.github.com> Date: Sun, 21 Apr 2019 18:28:34 +0200 Subject: [PATCH] Fix Let's Encrypt for IDN domains --- bin/v-add-letsencrypt-domain | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/bin/v-add-letsencrypt-domain b/bin/v-add-letsencrypt-domain index edcf6ae2..001f71e9 100755 --- a/bin/v-add-letsencrypt-domain +++ b/bin/v-add-letsencrypt-domain @@ -22,6 +22,14 @@ source $VESTA/func/main.sh source $VESTA/func/domain.sh source $VESTA/conf/vesta.conf +# Additional argument formatting +format_identifier_idn() { + identifier_idn=$identifier + if [[ "$identifier_idn" = *[![:ascii:]]* ]]; then + identifier_idn=$(idn -t --quiet -a $identifier_idn) + fi +} + # encode base64 encode_base64() { cat |base64 |tr '+/' '-_' |tr -d '\r\n=' @@ -109,7 +117,8 @@ fi url="$API/acme/new-order" payload='{"identifiers":[' for identifier in $(echo $domain,$aliases |tr ',' '\n' |sort -u); do - payload=$payload'{"type":"dns","value":"'$identifier'"},' + format_identifier_idn + payload=$payload'{"type":"dns","value":"'$identifier_idn'"},' done payload=$(echo "$payload"|sed "s/,$//") payload=$payload']}' @@ -209,7 +218,7 @@ done ssl_dir=$($BIN/v-generate-ssl-cert "$domain" "info@$domain" "US" "California"\ "San Francisco" "Vesta" "IT" "$aliases" |tail -n1 |awk '{print $2}') -# Sedning CSR to finalize order / STEP 6 +# Sending CSR to finalize order / STEP 6 csr=$(openssl req -in $ssl_dir/$domain.csr -outform DER |encode_base64) payload='{"csr":"'$csr'"}' answer=$(query_le_v2 "$finalize" "$payload" "$nonce")