Hello,
Just registered in this community, this is my first post. Your help will be much appreciated.
My domains are (for a single LE certificate: multi-domain, but not wildcard):
matin2-prod.ecs.gatech.edu
proxy.matin2-prod.ecs.gatech.edu
vncproxy.matin2-prod.ecs.gatech.edu
I ran this command:
acme.sh --issue --dns -d matin2-prod.ecs.gatech.edu -d proxy.matin2-prod.ecs.gatech.edu -d vncproxy.matin2-prod.ecs.gatech.edu --yes-I-know-dns-manual-mode-enough-go-ahead-please
It produced this output:
[Sat Jun 8 23:00:09 EDT 2019] Multi domain='DNS:matin2-prod.ecs.gatech.edu,DNS:proxy.matin2-prod.ecs.gatech.edu,DNS:vncproxy.matin2-prod.ecs.gatech.edu'
[Sat Jun 8 23:00:09 EDT 2019] Getting domain auth token for each domain
[Sat Jun 8 23:00:10 EDT 2019] Getting webroot for domain='matin2-prod.ecs.gatech.edu'
[Sat Jun 8 23:00:10 EDT 2019] Getting webroot for domain='proxy.matin2-prod.ecs.gatech.edu'
[Sat Jun 8 23:00:10 EDT 2019] Getting webroot for domain='vncproxy.matin2-prod.ecs.gatech.edu'
[Sat Jun 8 23:00:10 EDT 2019] Add the following TXT record:
[Sat Jun 8 23:00:10 EDT 2019] Domain: '_acme-challenge.proxy.matin2-prod.ecs.gatech.edu'
[Sat Jun 8 23:00:10 EDT 2019] TXT value: '_cepvK2pKz_WNmHOkPy77RAdIZsydZqW7I6Aiske840'
[Sat Jun 8 23:00:10 EDT 2019] Please be aware that you prepend _acme-challenge. before your domain
[Sat Jun 8 23:00:10 EDT 2019] so the resulting subdomain will be: _acme-challenge.proxy.matin2-prod.ecs.gatech.edu
[Sat Jun 8 23:00:11 EDT 2019] Add the following TXT record:
[Sat Jun 8 23:00:11 EDT 2019] Domain: '_acme-challenge.vncproxy.matin2-prod.ecs.gatech.edu'
[Sat Jun 8 23:00:11 EDT 2019] TXT value: 'oQHANwJ5fsDlatYD4r9vyAWbXV83aElE5OT0mRQEZcw'
[Sat Jun 8 23:00:11 EDT 2019] Please be aware that you prepend _acme-challenge. before your domain
[Sat Jun 8 23:00:11 EDT 2019] so the resulting subdomain will be: _acme-challenge.vncproxy.matin2-prod.ecs.gatech.edu
[Sat Jun 8 23:00:11 EDT 2019] Please add the TXT records to the domains, and re-run with --renew.
[Sat Jun 8 23:00:11 EDT 2019] Please check log file for more details: /root/.acme.sh/acme.sh.log
[root@matin2-prod cloud-user]#
[root@matin2-prod cloud-user]# acme.sh --issue --dns -d matin2-prod.ecs.gatech.edu -d proxy.matin2-prod.ecs.gatech.edu -d vncproxy.matin2-prod.ecs.gatech.edu --yes-I-know-dns-manual-mode-enough-go-ahead-please --renew
[Sat Jun 8 23:02:17 EDT 2019] Renew: 'matin2-prod.ecs.gatech.edu'
[Sat Jun 8 23:02:18 EDT 2019] Multi domain='DNS:matin2-prod.ecs.gatech.edu,DNS:proxy.matin2-prod.ecs.gatech.edu,DNS:vncproxy.matin2-prod.ecs.gatech.edu'
[Sat Jun 8 23:02:18 EDT 2019] Getting domain auth token for each domain
[Sat Jun 8 23:02:18 EDT 2019] matin2-prod.ecs.gatech.edu is already verified, skip dns-01.
[Sat Jun 8 23:02:18 EDT 2019] Verifying: proxy.matin2-prod.ecs.gatech.edu
[Sat Jun 8 23:02:20 EDT 2019] proxy.matin2-prod.ecs.gatech.edu:Verify error:Incorrect TXT record
[Sat Jun 8 23:02:20 EDT 2019] Please check log file for more details: /root/.acme.sh/acme.sh.log
[Sat Jun 8 23:02:21 EDT 2019] The dns manual mode can not renew automatically, you must issue it again manually. You'd better use the other modes instead.
Updated relevant DNS records (note that the main domainās records has already been validated earlier). Then ā¦
I ran this command (after running the same command without --debug):
acme.sh --issue --dns -d matin2-prod.ecs.gatech.edu -d proxy.matin2-prod.ecs.gatech.edu -d vncproxy.matin2-prod.ecs.gatech.edu --yes-I-know-dns-manual-mode-enough-go-ahead-please --renew --debug
It produced this output:
[Sat Jun 8 23:23:32 EDT 2019] Lets find script dir.
[Sat Jun 8 23:23:32 EDT 2019] _SCRIPT_='/root/.acme.sh/acme.sh'
[Sat Jun 8 23:23:32 EDT 2019] _script='/root/.acme.sh/acme.sh'
[Sat Jun 8 23:23:32 EDT 2019] _script_home='/root/.acme.sh'
[Sat Jun 8 23:23:32 EDT 2019] Using config home:/root/.acme.sh
https://github.com/Neilpang/acme.sh
v2.8.2
[Sat Jun 8 23:23:32 EDT 2019] Using config home:/root/.acme.sh
[Sat Jun 8 23:23:32 EDT 2019] ACME_DIRECTORY='https://acme-v02.api.letsencrypt.org/directory'
[Sat Jun 8 23:23:32 EDT 2019] DOMAIN_PATH='/root/.acme.sh/matin2-prod.ecs.gatech.edu'
[Sat Jun 8 23:23:32 EDT 2019] Renew: 'matin2-prod.ecs.gatech.edu'
[Sat Jun 8 23:23:32 EDT 2019] Le_API
[Sat Jun 8 23:23:32 EDT 2019] _main_domain='matin2-prod.ecs.gatech.edu'
[Sat Jun 8 23:23:32 EDT 2019] _alt_domains='proxy.matin2-prod.ecs.gatech.edu,vncproxy.matin2-prod.ecs.gatech.edu'
[Sat Jun 8 23:23:32 EDT 2019] Using ACME_DIRECTORY: https://acme-v02.api.letsencrypt.org/directory
[Sat Jun 8 23:23:32 EDT 2019] _init api for server: https://acme-v02.api.letsencrypt.org/directory
[Sat Jun 8 23:23:32 EDT 2019] GET
[Sat Jun 8 23:23:32 EDT 2019] url='https://acme-v02.api.letsencrypt.org/directory'
[Sat Jun 8 23:23:32 EDT 2019] timeout=
[Sat Jun 8 23:23:32 EDT 2019] _CURL='curl -L --silent --dump-header /root/.acme.sh/http.header -g '
[Sat Jun 8 23:23:32 EDT 2019] ret='0'
[Sat Jun 8 23:23:32 EDT 2019] ACME_KEY_CHANGE='https://acme-v02.api.letsencrypt.org/acme/key-change'
[Sat Jun 8 23:23:32 EDT 2019] ACME_NEW_AUTHZ
[Sat Jun 8 23:23:32 EDT 2019] ACME_NEW_ORDER='https://acme-v02.api.letsencrypt.org/acme/new-order'
[Sat Jun 8 23:23:32 EDT 2019] ACME_NEW_ACCOUNT='https://acme-v02.api.letsencrypt.org/acme/new-acct'
[Sat Jun 8 23:23:32 EDT 2019] ACME_REVOKE_CERT='https://acme-v02.api.letsencrypt.org/acme/revoke-cert'
[Sat Jun 8 23:23:32 EDT 2019] ACME_AGREEMENT='https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf'
[Sat Jun 8 23:23:32 EDT 2019] ACME_NEW_NONCE='https://acme-v02.api.letsencrypt.org/acme/new-nonce'
[Sat Jun 8 23:23:32 EDT 2019] ACME_VERSION='2'
[Sat Jun 8 23:23:32 EDT 2019] Le_NextRenewTime
[Sat Jun 8 23:23:32 EDT 2019] _on_before_issue
[Sat Jun 8 23:23:32 EDT 2019] _chk_main_domain='matin2-prod.ecs.gatech.edu'
[Sat Jun 8 23:23:32 EDT 2019] _chk_alt_domains='proxy.matin2-prod.ecs.gatech.edu,vncproxy.matin2-prod.ecs.gatech.edu'
[Sat Jun 8 23:23:32 EDT 2019] Le_LocalAddress
[Sat Jun 8 23:23:32 EDT 2019] d='matin2-prod.ecs.gatech.edu'
[Sat Jun 8 23:23:32 EDT 2019] Check for domain='matin2-prod.ecs.gatech.edu'
[Sat Jun 8 23:23:32 EDT 2019] _currentRoot='dns'
[Sat Jun 8 23:23:32 EDT 2019] d='proxy.matin2-prod.ecs.gatech.edu'
[Sat Jun 8 23:23:32 EDT 2019] Check for domain='proxy.matin2-prod.ecs.gatech.edu'
[Sat Jun 8 23:23:32 EDT 2019] _currentRoot='dns'
[Sat Jun 8 23:23:32 EDT 2019] d='vncproxy.matin2-prod.ecs.gatech.edu'
[Sat Jun 8 23:23:32 EDT 2019] Check for domain='vncproxy.matin2-prod.ecs.gatech.edu'
[Sat Jun 8 23:23:32 EDT 2019] _currentRoot='dns'
[Sat Jun 8 23:23:32 EDT 2019] d
[Sat Jun 8 23:23:32 EDT 2019] _saved_account_key_hash is not changed, skip register account.
[Sat Jun 8 23:23:32 EDT 2019] Read key length:
[Sat Jun 8 23:23:32 EDT 2019] _createcsr
[Sat Jun 8 23:23:32 EDT 2019] Multi domain='DNS:matin2-prod.ecs.gatech.edu,DNS:proxy.matin2-prod.ecs.gatech.edu,DNS:vncproxy.matin2-prod.ecs.gatech.edu'
[Sat Jun 8 23:23:32 EDT 2019] Getting domain auth token for each domain
[Sat Jun 8 23:23:32 EDT 2019] ok, let's start to verify
[Sat Jun 8 23:23:32 EDT 2019] matin2-prod.ecs.gatech.edu is already verified, skip dns-01.
[Sat Jun 8 23:23:32 EDT 2019] Verifying: proxy.matin2-prod.ecs.gatech.edu
[Sat Jun 8 23:23:32 EDT 2019] d='proxy.matin2-prod.ecs.gatech.edu'
[Sat Jun 8 23:23:32 EDT 2019] keyauthorization='SpZqG6HT_AAGVfGhiHN-Kvnv0cq0DK1k-H2Evp58bpQ.SSIWawZdCBXVhMpG4kGxz8ayMVhsTRfsT9hMAVORhZI'
[Sat Jun 8 23:23:32 EDT 2019] uri='https://acme-v02.api.letsencrypt.org/acme/challenge/O9IxNUHQbHXFotUD3Awrsa1zC8T0g6XxgDGdZdasm3k/16845024693'
[Sat Jun 8 23:23:32 EDT 2019] _currentRoot='dns'
[Sat Jun 8 23:23:32 EDT 2019] url='https://acme-v02.api.letsencrypt.org/acme/challenge/O9IxNUHQbHXFotUD3Awrsa1zC8T0g6XxgDGdZdasm3k/16845024693'
[Sat Jun 8 23:23:32 EDT 2019] payload='{}'
[Sat Jun 8 23:23:32 EDT 2019] RSA key
[Sat Jun 8 23:23:32 EDT 2019] HEAD
[Sat Jun 8 23:23:32 EDT 2019] _post_url='https://acme-v02.api.letsencrypt.org/acme/new-nonce'
[Sat Jun 8 23:23:32 EDT 2019] _CURL='curl -L --silent --dump-header /root/.acme.sh/http.header -g '
[Sat Jun 8 23:23:32 EDT 2019] _ret='0'
[Sat Jun 8 23:23:32 EDT 2019] POST
[Sat Jun 8 23:23:32 EDT 2019] _post_url='https://acme-v02.api.letsencrypt.org/acme/challenge/O9IxNUHQbHXFotUD3Awrsa1zC8T0g6XxgDGdZdasm3k/16845024693'
[Sat Jun 8 23:23:32 EDT 2019] _CURL='curl -L --silent --dump-header /root/.acme.sh/http.header -g '
[Sat Jun 8 23:23:32 EDT 2019] _ret='0'
[Sat Jun 8 23:23:33 EDT 2019] code='400'
[Sat Jun 8 23:23:33 EDT 2019] proxy.matin2-prod.ecs.gatech.edu:Challenge error: {
"type": "urn:ietf:params:acme:error:malformed",
"detail": "Unable to update challenge :: authorization must be pending",
"status": 400
}
[Sat Jun 8 23:23:33 EDT 2019] Skip for removelevel:
[Sat Jun 8 23:23:33 EDT 2019] pid
[Sat Jun 8 23:23:33 EDT 2019] No need to restore nginx, skip.
[Sat Jun 8 23:23:33 EDT 2019] _clearupdns
[Sat Jun 8 23:23:33 EDT 2019] dns_entries
[Sat Jun 8 23:23:33 EDT 2019] skip dns.
[Sat Jun 8 23:23:33 EDT 2019] _on_issue_err
[Sat Jun 8 23:23:33 EDT 2019] Please check log file for more details: /root/.acme.sh/acme.sh.log
[Sat Jun 8 23:23:33 EDT 2019] url='https://acme-v02.api.letsencrypt.org/acme/challenge/PwfsfRKkv3_HmNvVZvNkHZWJsM4xWXaoizPgW_V_H9E/16758639237'
[Sat Jun 8 23:23:33 EDT 2019] payload='{}'
[Sat Jun 8 23:23:33 EDT 2019] POST
[Sat Jun 8 23:23:33 EDT 2019] _post_url='https://acme-v02.api.letsencrypt.org/acme/challenge/PwfsfRKkv3_HmNvVZvNkHZWJsM4xWXaoizPgW_V_H9E/16758639237'
[Sat Jun 8 23:23:33 EDT 2019] _CURL='curl -L --silent --dump-header /root/.acme.sh/http.header -g '
[Sat Jun 8 23:23:33 EDT 2019] _ret='0'
[Sat Jun 8 23:23:33 EDT 2019] code='200'
[Sat Jun 8 23:23:33 EDT 2019] url='https://acme-v02.api.letsencrypt.org/acme/challenge/O9IxNUHQbHXFotUD3Awrsa1zC8T0g6XxgDGdZdasm3k/16845024693'
[Sat Jun 8 23:23:33 EDT 2019] payload='{}'
[Sat Jun 8 23:23:33 EDT 2019] POST
[Sat Jun 8 23:23:33 EDT 2019] _post_url='https://acme-v02.api.letsencrypt.org/acme/challenge/O9IxNUHQbHXFotUD3Awrsa1zC8T0g6XxgDGdZdasm3k/16845024693'
[Sat Jun 8 23:23:33 EDT 2019] _CURL='curl -L --silent --dump-header /root/.acme.sh/http.header -g '
[Sat Jun 8 23:23:33 EDT 2019] _ret='0'
[Sat Jun 8 23:23:33 EDT 2019] code='400'
[Sat Jun 8 23:23:33 EDT 2019] url='https://acme-v02.api.letsencrypt.org/acme/challenge/-eQmYumq_BmfmnTI4dvxHXLT8An7sIos1J7JAEa7k9Y/16845024753'
[Sat Jun 8 23:23:33 EDT 2019] payload='{}'
[Sat Jun 8 23:23:33 EDT 2019] POST
[Sat Jun 8 23:23:33 EDT 2019] _post_url='https://acme-v02.api.letsencrypt.org/acme/challenge/-eQmYumq_BmfmnTI4dvxHXLT8An7sIos1J7JAEa7k9Y/16845024753'
[Sat Jun 8 23:23:33 EDT 2019] _CURL='curl -L --silent --dump-header /root/.acme.sh/http.header -g '
[Sat Jun 8 23:23:33 EDT 2019] _ret='0'
[Sat Jun 8 23:23:33 EDT 2019] code='400'
[Sat Jun 8 23:23:33 EDT 2019] The dns manual mode can not renew automatically, you must issue it again manually. You'd better use the other modes instead.
My web server is (include version):
Apache 2, but it's irrelevant here due to using DNS-based challenge.
The operating system my web server runs on is (include version): RHEL 6.10
My hosting provider, if applicable, is: N/A
I can login to a root shell on my machine (yes or no, or I donāt know): Yes
Iām using a control panel to manage my site (no, or provide the name and version of the control panel): No
The version of my client is (e.g. output of certbot --version
or certbot-auto --version
if youāre using Certbot): acme.sh v2.8.2
NOTE: I cannot use HTTP-based challenge/validation due to port 80 being locked down.