{"id":87101,"date":"2020-07-03T19:42:00","date_gmt":"2020-07-03T17:42:00","guid":{"rendered":"https:\/\/prohoster.info\/blog\/novosti-interneta\/najdena-prichina-problem-dehydrated-s-acme-serverami-otlichnymi-ot-letsencrypt"},"modified":"2020-07-03T19:42:00","modified_gmt":"2020-07-03T17:42:00","slug":"najdena-prichina-problem-dehydrated-s-acme-serverami-otlichnymi-ot-letsencrypt","status":"publish","type":"post","link":"https:\/\/prohoster.info\/en\/blog\/news\/najdena-prichina-problem-dehydrated-s-acme-serverami-otlichnymi-ot-letsencrypt","title":{"rendered":"The reason for the problems with dehydrated and ACME servers other than LetsEncrypt has been found.","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Sebastian Krause <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/dehydrated-io\/dehydrated\/issues\/653#issuecomment-652015341\">identified<\/a><\/noindex> the source of a strange incompatibility with the service <noindex><a rel=\"nofollow\" href=\"https:\/\/www.buypass.com\/ssl\/products\/acme\">Bypass<\/a><\/noindex> script <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/dehydrated-io\/dehydrated\">dehydrated<\/a><\/noindex>, used for automating the acquisition of TLS certificates via the ACME protocol. Both the Bypass and the reference client, as well as uacme, work, but dehydrated does not (more accurately, it did work with some workarounds, but only in dns-1 mode).<\/p>\n<p>The reason turned out to be quite simple: instead of properly parsing the JSON response, the author dehydrated used a peculiarity of formatting specific to the JSON output from Let&#8217;s Encrypt and performed the parsing using regular expressions. However, Bypass returns not a nicely formatted but a minified JSON, and the used <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/dehydrated-io\/dehydrated\/blob\/dc552c602eca94737b66e62f4c4087a4e8f251e4\/dehydrated#L707\">regular expression<\/a><\/noindex> did not work. This approach does not rule out problems with LetsEncrypt if this service unexpectedly changes the output format in the future, while remaining fully within the official protocol.<\/p>\n<p>During the discussion of the problem, it was suggested to use an external JSON parser, such as <noindex><a rel=\"nofollow\" href=\"https:\/\/metacpan.org\/pod\/distribution\/JSON-PP\/bin\/json_pp\">json_pp<\/a><\/noindex> or <noindex><a rel=\"nofollow\" href=\"https:\/\/stedolan.github.io\/jq\/\">jq<\/a><\/noindex> (add to pipe &#8216;jq -r &#171;.authorizations | .[]&#187;&#8216; for correct parsing).<br \/>\nThe downside of this approach is the dilution of the idea of managing with minimal and easily verifiable means, as well as error handling issues.<\/p>\n<p>The author of the dehydrated project (the project was recently <noindex><a rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=52294\">sold<\/a><\/noindex> to Apilayer GmbH) <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/dehydrated-io\/dehydrated\/issues\/653#issuecomment-652569458\">agreed<\/a><\/noindex>, that parsing JSON is a significant issue, but adding external parsers is not considered a good idea, as one of the key advantages of the script is the absence of dependence on external dependencies. He is currently busy but hopes to devote attention to solving the problem in the next few days. The plans include redesigning the JSON parser or integrating a ready-made parser in shell language &#8212; <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/dominictarr\/JSON.sh\">JSON.sh<\/a><\/noindex>.<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"link\"><\/a><\/noindex><\/p>\n<p>Source: <a \ncontent=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=53279\">opennet.ru<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>Sebastian Krause \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u043b \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a \u0441\u0442\u0440\u0430\u043d\u043d\u043e\u0439 \u043d\u0435\u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u0441\u0442\u0438 \u0441 \u0441\u0435\u0440\u0432\u0438\u0441\u043e\u043c Bypass \u0441\u043a\u0440\u0438\u043f\u0442\u0430 dehydrated, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u043e\u0433\u043e \u0434\u043b\u044f \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u0438 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f TLS-\u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0432 \u043f\u043e \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0443 ACME. \u0421 Bypass \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u0438 \u044d\u0442\u0430\u043b\u043e\u043d\u043d\u044b\u0439 \u043a\u043b\u0438\u0435\u043d\u0442, \u0438 uacme, \u043d\u043e \u043d\u0435 dehydrated (\u0442\u043e\u0447\u043d\u0435\u0435, \u043e\u043d \u0442\u043e\u0436\u0435 \u0441 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u043c\u0438 \u043e\u0431\u0445\u043e\u0434\u043d\u044b\u043c\u0438 \u043c\u0430\u043d\u0451\u0432\u0440\u0430\u043c\u0438 \u0437\u0430\u0440\u0430\u0431\u043e\u0442\u0430\u043b, \u043d\u043e \u0438\u0441\u043a\u043b\u044e\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 dns-1). \u041f\u0440\u0438\u0447\u0438\u043d\u0430 \u043e\u043a\u0430\u0437\u0430\u043b\u0430\u0441\u044c \u0431\u0430\u043d\u0430\u043b\u044c\u043d\u0430: \u0432\u043c\u0435\u0441\u0442\u043e \u0442\u043e\u0433\u043e \u0447\u0442\u043e\u0431\u044b \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0442\u044c \u043e\u0442\u0432\u0435\u0442 \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 JSON \u043f\u043e [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-87101","post","type-post","status-publish","format-standard","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2 - aioseo.com -->\n\t<meta name=\"description\" content=\"Sebastian Krause \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u043b \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a \u0441\u0442\u0440\u0430\u043d\u043d\u043e\u0439 \u043d\u0435\u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u0441\u0442\u0438 \u0441 \u0441\u0435\u0440\u0432\u0438\u0441\u043e\u043c\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/en\/blog\/news\/najdena-prichina-problem-dehydrated-s-acme-serverami-otlichnymi-ot-letsencrypt\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u041d\u0430\u0439\u0434\u0435\u043d\u0430 \u043f\u0440\u0438\u0447\u0438\u043d\u0430 \u043f\u0440\u043e\u0431\u043b\u0435\u043c dehydrated \u0441 ACME-\u0441\u0435\u0440\u0432\u0435\u0440\u0430\u043c\u0438, \u043e\u0442\u043b\u0438\u0447\u043d\u044b\u043c\u0438 \u043e\u0442 LetsEncrypt | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"Sebastian Krause \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u043b \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a \u0441\u0442\u0440\u0430\u043d\u043d\u043e\u0439 \u043d\u0435\u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u0441\u0442\u0438 \u0441 \u0441\u0435\u0440\u0432\u0438\u0441\u043e\u043c\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/en\/blog\/news\/najdena-prichina-problem-dehydrated-s-acme-serverami-otlichnymi-ot-letsencrypt\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-07-03T17:42:00+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-07-03T17:42:00+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47The reason for the problems with dehydrated and ACME servers other than LetsEncrypt has been found | ProHoster","description":"Sebastian Krause identified the source of the strange incompatibility with the service","canonical_url":"https:\/\/prohoster.info\/en\/blog\/news\/najdena-prichina-problem-dehydrated-s-acme-serverami-otlichnymi-ot-letsencrypt","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"en_US","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u041d\u0430\u0439\u0434\u0435\u043d\u0430 \u043f\u0440\u0438\u0447\u0438\u043d\u0430 \u043f\u0440\u043e\u0431\u043b\u0435\u043c dehydrated \u0441 ACME-\u0441\u0435\u0440\u0432\u0435\u0440\u0430\u043c\u0438, \u043e\u0442\u043b\u0438\u0447\u043d\u044b\u043c\u0438 \u043e\u0442 LetsEncrypt | ProHoster","og:description":"Sebastian Krause \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u043b \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a \u0441\u0442\u0440\u0430\u043d\u043d\u043e\u0439 \u043d\u0435\u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u0441\u0442\u0438 \u0441 \u0441\u0435\u0440\u0432\u0438\u0441\u043e\u043c","og:url":"https:\/\/prohoster.info\/en\/blog\/news\/najdena-prichina-problem-dehydrated-s-acme-serverami-otlichnymi-ot-letsencrypt","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-07-03T17:42:00+00:00","article:modified_time":"2020-07-03T17:42:00+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"87101","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 13:58:52","updated":"2022-10-02 21:29:06","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts\/87101","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/comments?post=87101"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts\/87101\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/media?parent=87101"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/categories?post=87101"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/tags?post=87101"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}