
Chyba v SSL?
Zdravím borci. Kamarád, kterému občas pomáhám, mi poslal, že mu stále chodí na email toto oznámení (níže). Dle mě jde o nějaké špatné zabezpečení (?), asi o chybějící SSL certifikát (?), když web spolupracuje s webem, který má tento SSL nově. Chtěl bych Vás poprosit, jestli byste mi mohli poradit, co mám teď udělat. Nemám dost zkušeností na to, abych rozpoznal chybu.
Oznámení:
An error occurred requesting a new certificate for poradna.olsen-spa.cz from Let's Encrypt : Web-based validation failed : Failed to request certificate : <pre>Parsing account key...
Parsing CSR...
Registering account...
Already registered!
Verifying poradna.olsen-spa.cz...
Wrote file to /home/olsen-spa/public_html/poradna/.well-known/acme-challenge/sxdLdRNgAdQmGIAM-h_6K0aHAl1SOJbZ_qyG-bZPBpw, but couldn't download http://poradna.olsen-spa.cz/.well-known/acme-challenge/sxdLdRNgAdQmGIAM-h_6K0aHAl1SOJbZ_qyG-bZPBpw
Traceback (most recent call last):
File "/usr/share/webmin/webmin/acme_tiny.py", line 235, in <module>
main(sys.argv[1:])
File "/usr/share/webmin/webmin/acme_tiny.py", line 231, in main
signed_crt = get_crt(args.account_key, args.csr, args.acme_dir, args.dns_hook, args.cleanup_hook, log=LOGGER, CA=args.ca)
File "/usr/share/webmin/webmin/acme_tiny.py", line 184, in get_crt
domain, challenge_status))
ValueError: poradna.olsen-spa.cz challenge did not pass: {u'status': u'invalid', u'validationRecord': [{u'addressesResolved': [u'188.165.202.209'], u'url': u'http://poradna.olsen-spa.cz/.well-known/acme-challenge/sxdLdRNgAdQmGIAM-h_6K0aHAl1SOJbZ_qyG-bZPBpw', u'hostname': u'poradna.olsen-spa.cz', u'addressesTried': [], u'addressUsed': u'188.165.202.209', u'port': u'80'}], u'keyAuthorization': u'sxdLdRNgAdQmGIAM-h_6K0aHAl1SOJbZ_qyG-bZPBpw.QDBMA1ZFW1F5HqEe_3348vq1wVAE9KK-KDd5FNTXmKE', u'uri': u'https://acme-v01.api.letsencrypt.org/acme/challenge/SFNqWyPoDWP55fi8sqodr0H2eWbrFG61lWXqpSpeG2I/1801405757', u'token': u'sxdLdRNgAdQmGIAM-h_6K0aHAl1SOJbZ_qyG-bZPBpw', u'error': {u'status': 403, u'type': u'urn:acme:error:unauthorized', u'detail': u'Invalid response from http://poradna.olsen-spa.cz/.well-known/acme-challenge/sxdLdRNgAdQmGIAM-h_6K0aHAl1SOJbZ_qyG-bZPBpw: "<!DOCTYPE html>\n<html lang="cs-CZ" prefix="og: http://ogp.me/ns#">\n\n<head>\n\n <meta charset="UTF-8" />\n<title>Str\xe1nka nenalez"'}, u'type': u'http-01'}
</pre>
Předem všem moc děkuji za rady.
Registroval si na svůj email nějaký certifikát pro Let's Encrypt? Pokud ne, tak si to na něj nejspíš zaregistroval někdo jiný.
Na tomto emailu běží 2 weby. olsen-spa.cz (který má SSL nově) a poradna.olsen-spa.cz (který SSL asi ani nemá podle všeho o.O).
Stejně jako si žádal o certifikát na hlavní doménu, musí si zažádat i o subdomény. Let's Encrypt zatím nepodporuje wildcard certifikáty.
Díky. Já o první certifikát nežádal. Říkám, že jen občas vypomáhám a s tímto zrovna zkušenosti nemám, proto jsem napsal sem. Děkuji za info.
Však já taky nepsal o tobě, nýbrž o něm.
Pro tebe bude asi nejlepsi upravit to tak, at pouzivas jeden certifikat vystaveny pro domeny olsen-spa.cz a poradna.olsen-spa.cz misto toho, abys pro kazdou subdomenu generoval novy certifikat. To bude nejjednodussi a nejlepsi reseni.
A můžu se zeptat, kde a jak to udělat? Nejlépe ais kdybyste mě odkázali na nějaký internetový návod. Děkuji.
Nikdo nevi, jaka je struktura toho webu, jak je resene generovani certifikatu... zadny navod ti nikdo neporadi. Prvni veci je zajistit, aby si ten validacni server dokazal stahnout soubor http://poradna.olsen-spa.cz/.well-known/acme-challenge/sxdLdRNgAdQmGIAM-h_6K0aHAl1SOJbZ_qyG-bZPBpw a ne aby mu to vracelo error 404. Bez toho se dal nepohnes.
Nejjednodušší možná ano, ale certifikáty jsou obvykle placené. Let's Encrypt dává certifikáty zdarma, ale zatím nepodporuje wildcardové.
Vsak nepotrebuje wildcard. Proste jen v zadosti o novy certifikat napise vice domenovych jmen. Ale jak jsem se koukal, tak i pro poradna.olsen-spa.cz pouziva jiny certifikat.
Nepotřebuje wildcard ale:
a pri zadosti o certifikat tam muzes napsat alternativnich domenovych jmen plnej kotel.
U Let's Encypt se o certifikáty nežádá klasicky jako u jiných CA. Používá se tam ACME protokol. Možná mi něco uniklo, ale pro víc domén najednou to snad nejde.
Jj, uniklo (nic ve zlym)
Multiple domains with single certificate
To je ale certbot, nikoliv LE jako takový. Ale OK.
Za to, že mu to chodí na e-mail, môže pravdepodobne pravidelne spúšťaný klient pre generovanie a aktualizovanie Let's Encrypt certifikátov. Ten klient sa volá certbot a snaží sa vygenerovať/aktualizovať certifikát pre poradna.olsen-spa.cz.
Aby Let's Encrypt vedel overiť, že klient má kontrolu nad doménou, vytvorí klient v koreňovom adresári webu súbor .well-known/acme-challenge/{náhodný reťazec}. Ten náhodný reťazec si klient (certbot) vypýta od servera Let's Encrypt. Ten potom overí, že taký súbor existuje. Ak neexistuje, certifikát sa nevygeneruje. Súbor sa klientovi podarilo vytvoriť, ale server ho zvonku nevidí.
Takže teraz je otázka, prečo ten súbor v adresári .well-known/acme-challenge nie je zvonku viditeľný. Dosť často je to spôsobené tým, že aplikácia v adresári poradna obsahuje rewrite pravidlo, ktoré namiesto náhodného súboru poskytne iný obsah. Vo vašom prípade to je ale spôsobené tým, že máte ten web chránený autentifikáciou - to aspoň prezrádza kód 403 a odpoveď unauthorized. Takže riešením je povoliť prístup do adresára .well-known.
Nastavenie autentifikácie sa robí buď na úrovni aplikácie alebo na úrovni webového servera. Takže sa buď pozrite do konfigurácie virtual hosta alebo do .htaccessu alebo do aplikácie a tam to upravte, aby autentifikácia nebola vyžadovaná. To, že ste to nastavili správne, overíte napríklad tak, že vytvoríte v danom adresári ľubovoľný súbor a pozriete si ho cez prehliadač. Ak to bude nastavené správne, uvidíte obsah súboru. Ak nesprávne, uvidíte stránku, ktorá vráti kód 403.