Path: csiph.com!fu-berlin.de!uni-berlin.de!individual.net!not-for-mail From: "Walter H." Newsgroups: de.comp.lang.python Subject: =?ISO-8859-1?Q?Re=3A_seltsames_Verhalten_mit_acme=5Ftiny?= =?ISO-8859-1?Q?=2Epy=2C_wie_l=F6se___ich_es=3F?= Date: Thu, 01 Feb 2018 05:44:56 +0100 Organization: Waldi's NNTP Home Lines: 83 Message-ID: References: Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 8bit X-Trace: individual.net CYxdumXgYpIumO+tDs3RyQ7k+5CaoVEZCR2Ch/0cloNyx/GaUe Cancel-Lock: sha1:Viml83MFsyglwQK3tiaiVK1af40= User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; de-DE; rv:12.71) Gecko/20111031 Thunderbird/17.21 In-Reply-To: X-No-Archive: yes Xref: csiph.com de.comp.lang.python:5113 On 31.01.2018 21:49, Peter J. Holzer wrote: > On 2018-01-31 17:33, Walter H. wrote: >> ich verwende f. Let's Encrypt dieses >> https://github.com/diafygi/acme-tiny >> Script ... >> >> mein Router hat - klarerweise - mehrere NICs, und er ist vollständig >> DualStack; > [...] >> wenn ich nun mit diesem Skript das Zertifikat f. IPv6 erneuern will >> kommt das ... >> >> Parsing account key... >> Parsing CSR... >> Registering account... >> Already registered. >> Verifying host.ipv6home.eu... >> Traceback (most recent call last): >> File "./acmetiny.py", line 198, in >> main(sys.argv[1:]) >> File "./acmetiny.py", line 194, in main >> signed_crt = get_crt(args.account_key, args.csr, args.acme_dir, >> log=LOGGER, CA=args.ca) >> File "./acmetiny.py", line 123, in get_crt >> wellknown_path, wellknown_url)) >> ValueError: Wrote file to >> /var/www/inet/.well-known/acme-challenge/gkh9nE7F__wOulP6YOw8E0OS0qh-EJmUOpVLGcz22KY, >> but couldn't download >> http://host.example.com/.well-known/acme-challenge/gkh9nE7F__wOulP6YOw8E0OS0qh-EJmUOpVLGcz22KY > > Hmm. Inkonsistent anonymisierte Hostnamen (einmal "host.ipv6home.eu", > einmal "host.example.com") sind kontraproduktiv. hatte ich übersehen ... >> im Skript selbst habe ich folgendes gefunden, wenn ich diesen Teil hier >> >> # check that the file is in place >> wellknown_url = >> "http://{0}/.well-known/acme-challenge/{1}".format(domain, token) >> try: >> resp = urlopen(wellknown_url) >> resp_data = resp.read().decode('utf8').strip() >> assert resp_data == keyauthorization >> except (IOError, AssertionError): >> os.remove(wellknown_path) >> raise ValueError("Wrote file to {0}, but couldn't download >> {1}".format(wellknown_path, wellknown_url)) >> >> auskommentiere, dann klappt das; hingegen mit habe ich dieses Problem >> nicht; daher die Frage: woher kommt dieses Verhalten mit IPv6? >> da es auch mit deaktivierter Firewall ist, wird es auch nicht durch >> irgendeine Regel verursacht ... >> (im Log des Apache sehe ich keine Zugriffe derart, sprich es wird vorher >> bereits blockiert) > > Hast Du ein /etc/hosts, in dem host.example.com definiert ist? ja und nur mit einer IPv6 aber die Falsche, die richtige war nur im globalen DNS > acme-tiny > versucht zuerst selbst, die Challenge zu überprüfen, bevor es die CA > bemüht. das scheint genau dieser Teil zu sein, welcher nur mit IPv6 Probleme macht ... > Das geht aber natürlich nur, wenn der Server vom gleichen > Rechner aus unter dem gleichen Namen erreichbar ist. ja genau hier hackt es, ein wget http://host.example.com/ klappt von jedem anderen Host, nicht aber von sich selbst ... darum auch, wenn dieser Teil im Skript auskommentiert ist, geht es; > Manche > Linux-Distributionen schreiben so Zeug wie "127.0.1.1 meinname" da rein. > Oder manchmal vergisst man, das nach einer Adressänderung zu editieren. > Das führt dann zu Effekten wie dem von Dir beobachteten (das hat mich > auch mal geraume Zeit gekostet). Danke f. den Hinweis, genau das war es