Löytyi muiden ACME-palvelimien kuin LetsEncryptin kuivuneiden ongelmien syy

Sebastian Krause päättänyt outo yhteensopimattomuus palvelun kanssa Ohitus käsikirjoitus vedetön, jota käytetään automatisoimaan TLS-varmenteiden vastaanottaminen ACME-protokollan avulla. Sekä referenssiasiakas että uacme toimivat Bypassin kanssa, mutta eivät kuivattuina (tarkemmin sanottuna se toimi myös joidenkin kiertotapojen kanssa, mutta yksinomaan dns-1-tilassa).

Syy osoittautui triviaaliksi: sen sijaan, että jäsentäisi vastauksen JSON-muodossa todellisuudessa, dehydratedin kirjoittaja käytti tietyn Let's Encrypt -palvelun JSON-tulosteen muotoiluominaisuutta ja jäsensi sen säännöllisen lausekkeen avulla. Mutta Bypass ei palauta kauniisti muotoiltua, vaan minimoitua JSONia ja käytettyä tavallinen ilme ei toiminut. Tämä lähestymistapa ei sulje pois LetsEncryptin ongelmia, jos tämä palvelu muuttaa myöntämismuotoa tulevaisuudessa ilman varoitusta, mutta pysyy täysin virallisen protokollan puitteissa.

Ongelmasta keskusteltaessa ehdotettiin ulkoisen JSON-jäsentimen käyttöä, kuten json_pp tai jq (lisää putkeen 'jq -r ".authorizations | .[]"' oikeaa jäsentämistä varten).
Tämän lähestymistavan haittana on ajatuksen laimentaminen minimaalisten ja helposti todennettavien keinojen käytöstä sekä virheiden käsittelyyn liittyvät ongelmat.

Dehydratoidun projektin kirjoittaja (projekti oli äskettäin loppuunmyyty Apilayer GmbH) sovittu, että JSON-jäsennys on suuri ongelma, mutta hän ei pidä ulkoisten jäsentimien lisäämistä hyvänä ideana, koska yksi komentosarjan tärkeimmistä eduista on ulkoisten riippuvuuksien sitomisen puute. Hän on tällä hetkellä kiireinen, mutta toivoo voivansa kiinnittää huomionsa ongelman ratkaisemiseen lähipäivinä. Suunnitelmiin kuuluu JSON-jäsentimen uudelleenkäsittely tai valmiin jäsentimen integrointi shell-kielellä - JSON.sh.

Lähde: opennet.ru

Lisää kommentti