Skip to content

Wrong DNS_ADD_COMMAND called when having multiple wildcard domain #878

Open
@Kristian-Tan

Description

@Kristian-Tan

Describe the bug
If I have 2 domains with wildcard, e.g.: *.domain.com and *.sub.domain.com, when I call getssl '*.domain.com' the DNS_ADD_COMMAND that is executed is from *.sub.domain.com instead of *.domain.com

To Reproduce
file /root/.getssl/*.domain.com/getssl.cnf

echo "getssl.cfg wildcard domain.com"
CA="..."
VALIDATE_VIA_DNS=true
DNS_ADD_COMMAND='/root/.getssl/*.domain.com/dns-test-cmd.sh'
DNS_DEL_COMMAND='/root/.getssl/*.domain.com/dns-test-cmd.sh'
DOMAIN_CERT_LOCATION="..."
DOMAIN_KEY_LOCATION="..."
CA_CERT_LOCATION="..."
RELOAD_CMD="..."
echo "for debugging, this is dns add command: "
echo "$DNS_ADD_COMMAND"

file /root/.getssl/*.sub.domain.com/getssl.cnf

echo "getssl.cfg wildcard sub.domain.com"
CA="..."
VALIDATE_VIA_DNS=true
DNS_ADD_COMMAND='/root/.getssl/*.sub.domain.com/dns-test-cmd.sh'
DNS_DEL_COMMAND='/root/.getssl/*.sub.domain.com/dns-test-cmd.sh'
DOMAIN_CERT_LOCATION="..."
DOMAIN_KEY_LOCATION="..."
CA_CERT_LOCATION="..."
RELOAD_CMD="..."
echo "for debugging, this is dns add command: "
echo "$DNS_ADD_COMMAND"

file /root/.getssl/*.domain.com/dns-test-cmd.sh

#!/bin/bash

echo "testing dns script command for wildcard domain.com"

PARAM0="$0"
PARAM1="$1"
PARAM2="$2"
PARAM3="$2"

echo "param 0 is: $PARAM0"
echo "param 1 is: $PARAM1"
echo "param 2 is: $PARAM2"
echo "param 3 is: $PARAM3"

exit 2

file /root/.getssl/*.sub.domain.com/dns-test-cmd.sh

#!/bin/bash

echo "testing dns script command for wildcard sub.domain.com"

PARAM0="$0"
PARAM1="$1"
PARAM2="$2"
PARAM3="$2"

echo "param 0 is: $PARAM0"
echo "param 1 is: $PARAM1"
echo "param 2 is: $PARAM2"
echo "param 3 is: $PARAM3"

exit 2

Wrong Output

1: # root@qclxc:~/.getssl# getssl '*.domain.com'
2: getssl.cfg per account
3: getssl.cfg wildcard domain.com
4: for debugging, this is dns add command
5: /root/.getssl/*.domain.com/dns-test-cmd.sh
6: Registering account
7: Verify each domain
8: Verifying *.domain.com
9: testing dns script command for wildcard sub.domain.com
10: param 0 is: /root/.getssl/*.sub.domain.com/dns-test-cmd.sh
11: param 1 is: /root/.getssl/*.domain.com/dns-test-cmd.sh
12: param 2 is: domain.com
13: param 3 is: domain.com
14: getssl: DNS_ADD_COMMAND failed for domain *.domain.com

Expected behavior
When I'm calling getssl for *.domain.com, the script in /root/*.sub.domain.com/dns-test-cmd.sh should not be called. It should call /root/*.domain.com/dns-test-cmd.sh instead.

My wild guess is that the * glob operator is being expanded here and matches both /root/*.sub.domain.com/dns-test-cmd.sh and /root/*.domain.com/dns-test-cmd.sh

The wrong line is in line 10-13:

10: param 0 is: /root/.getssl/*.sub.domain.com/dns-test-cmd.sh
11: param 1 is: /root/.getssl/*.domain.com/dns-test-cmd.sh
12: param 2 is: domain.com
13: param 3 is: domain.com

It should be

10: param 0 is: /root/.getssl/*.domain.com/dns-test-cmd.sh
11: param 1 is: domain.com
12: param 2 is: (random generated token here)

Operating system (please complete the following information):

  • OS: Ubuntu 20.04 LTS
  • Bash Version: GNU bash, version 5.0.17(1)-release (x86_64-pc-linux-gnu)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions