Skip to content

Stack trace on unexpected HTTP response #274

@sdgathman

Description

@sdgathman

When fetching the .well-known URL as a test before contacting LE, this stack trace results:

python3[1084511]: detected unhandled Python exception in '/usr/sbin/acme_tiny'
acme-tiny[1084511]: Traceback (most recent call last):
acme-tiny[1084511]:   File "/usr/sbin/acme_tiny", line 199, in <module>
acme-tiny[1084511]:     main(sys.argv[1:])
acme-tiny[1084511]:   File "/usr/sbin/acme_tiny", line 195, in main
acme-tiny[1084511]:     signed_crt = get_crt(args.account_key, args.csr, args.acme_dir, log=LOGGER, CA=args.ca, disable_check=args.disable_check, directory_url=args.directory_url, contact=args.contact, check_port=args.check_port)
acme-tiny[1084511]:   File "/usr/sbin/acme_tiny", line 145, in get_crt
acme-tiny[1084511]:     assert (disable_check or _do_request(wellknown_url)[0] == keyauthorization)
acme-tiny[1084511]:   File "/usr/sbin/acme_tiny", line 43, in _do_request
acme-tiny[1084511]:     if depth < 100 and code == 400 and resp_data['type'] == "urn:ietf:params:acme:error:badNonce":
acme-tiny[1084511]: TypeError: string indices must be integers

Manually fetching the URL gets this error:

400 Bad Request

Bad Request

Your browser sent a request that this server could not understand.
Reason: You're speaking plain HTTP to an SSL-enabled server port.
Instead use the HTTPS scheme to access this URL, please.

Tcpdump confirms this is on port 80.

Clearly, the 400 error is an apache or apache config problem - acme-tiny-5.0.1 works on EL7 and other systems. However, the error handling could be cleaner. :-)
I will try my hand at a patch that doesn't bloat the beautiful acme-tiny code . . .

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions