Skip to content

Commit 395ca36

Browse files
author
neil
committed
fix for ari
1 parent b584e40 commit 395ca36

1 file changed

Lines changed: 10 additions & 0 deletions

File tree

acme.sh

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6884,6 +6884,16 @@ _getARICertID() {
68846884
_debug2 "_aki" "$_aki"
68856885
_debug2 "_ser" "$_ser"
68866886

6887+
# RFC 9773 Section 4.1 requires the DER-encoded INTEGER value bytes of
6888+
# serialNumber. When the high bit of the first byte is set (>= 0x80) DER
6889+
# prepends a 0x00 sign byte to keep the integer positive; openssl's hex
6890+
# output strips that, so add it back. Boulder (LE) accepts either form,
6891+
# but Sectigo (ZeroSSL) is strict and rejects newOrder with HTTP 401
6892+
# "replaces field does not identify a certificate" if the byte is missing.
6893+
case "$_ser" in
6894+
[89aAbBcCdDeEfF]*) _ser="00$_ser" ;;
6895+
esac
6896+
68876897
_akiurl="$(echo "$_aki" | _h2b | _base64 | _url_replace)"
68886898
_debug2 "_akiurl" "$_akiurl"
68896899
_serurl="$(echo "$_ser" | _h2b | _base64 | _url_replace)"

0 commit comments

Comments
 (0)