LINUX.ORG.RU
ФорумTalks

Let's Encrypt идея и реализация

 , , ,


4

3

Хотели создать Let's Encrypt и сделать как лучше, а получилось как всегда.

Сейчас ещё говорят, что якобы бета. Но уже сейчас видно, какую фигню они придумали.

Они говорят, что обычно сложная процедура получения сертификата, надо регаться и делать всякие действия, а потом ещё устанавливать сертификат на сервер. Да это сделать намного проще, чем заставить работать их приблуду!

Let's Encrypt предлагает запускать на сервере свой софт(который ещё свой сервер поднимает, epic), который будет править конфиги, да ещё и дёргать новый серификат постоянно. И будет это минимум раз в 3 месяца. И никаких чётких инструкций на сайте!

Никакого нормального описания на официальном сайте до сих пор нет. Есть какой-то пример, с какими-то ключами вроде как для апача. Но никаких подробностей. Вот так раз, взял запилил и запорол конфиги на продакшен сервере.

Я ещё месяц назад получил доступ к бета тестированию, но до сих пор никаких внятных инструкций, никакой нормальной документации. А ведь уже вроде публичный доступ всем дали вчера.

Уж лучше бы сделали как и у всех. Регистрация, получение сертификата(хотя бы на год) и самостоятельная установка на сервер. Это же так просто, чем возиться с их непонятным софтом, который будет у тебя хозяйничать на сервере. В результате процедура получения сертификата настолько усложнилась, что намного проще заплатить продавцам воздуха и без проблем получить, и установить сертификат.

Может, конечно, это я такой неосилятор, но я уверен, что я не один такой. Получил доступ, а дальше ступор. В сети пишут, то поддерживается nginx, то ещё нет. У кого-то запоролись конфиги, у кого-то ещё что-то. Неужели нельзя было сделать сразу для людей? Их утопичная идея перевести весь веб на https - проваливается ещё в зачатке. Идея крутая, а реализация epic fail.

★★★★★

Последнее исправление: beastie (всего исправлений: 1)

Ничего, скоро неактуально будет. По крайней мере в Казахстане

cvs-255 ★★★★★
()

Хотел написать, что ты рукожоп и можно просто отправить им CSR как в любой другой CA. Но почитав их сайт, я понял, что ты походу прав.

Deleted
()

Ты рукожоп и ниасилил, трогать конфиги вебсервера через тулзу не обязательно, достаточно папочку с челленжем пробросить куда-нибудь в то место, где тулза сможет в неё писать, и просто заюзать получившийся сертификат.

INFOMAN ★★★★★
()

на продакшен сервере

Плохая идея — экспериментировать на продакшн сервере. Если там нужно https, но сертификат уже куплен и установлен. Зачем там let's encrypt?

В сети пишут, то поддерживается nginx, то ещё нет. У кого-то запоролись конфиги, у кого-то ещё что-то. Неужели нельзя было сделать сразу для людей?

Я попробовал, на nginx. Но не стал просить его править конфиги.

letsencrypt-auto certonly --standalone -d server.name.com

А потом заменил ключи в конфиге nginx. Нужны fullchain.pem и privkey.pem.

i-rinat ★★★★★
()

letsencrypt-auto certonly --manual, пройти через несколько экранов TUI, положить нужный файл с нужным содержанием, нажать Enter — вот и всё, ключ и набор сертификатов готовы.

ksa242
()

Кто не хочет получать сертификат путём установки непонятно чего от лета енкрипт на свой вебсевер(полный нонсенс) может получить сертификат в полуавтоматическим режиме тут https://gethttpsforfree.com/

hope13 ★★★
()

Ты рукожоп, каких свет не видывал.

Я просто запустил letsencrypt-auto, он докачал к себе зависимости с реп, нашел апач, узнал домен, позадавал мне вопросы, а потом сам подтвердил домен, залил сертификат в /etc и добавил его в апач. Мне осталось только зайти на сайт и с удивлением увидеть, что у него уже есть сертификат.

Pavval ★★★★★
()
Ответ на: комментарий от Pavval

То есть, ты разрешил непонятной хреновине в автоматическом режиме внести изменения в конфиг на продакшн сервере? Хорошая попытка игры в русскую рулетку.

Black_Shadow ★★★★★
()
Последнее исправление: Black_Shadow (всего исправлений: 1)

Let's Encrypt предлагает запускать на сервере свой софт(который ещё свой сервер поднимает, epic),

Представь, что тебе нужен сертификат для SMTP-/XMPP-/FTPS-/gitlab-like-сервера, а HTTP-сервера на целевой машине отродясь не было и ставить его на пять минут желания нет. Тут встроенный в letsencrypt-auto сервер как нельзя кстати.

ksa242
()
Ответ на: комментарий от Pavval

Я просто запустил letsencrypt-auto, он докачал к себе зависимости с реп, нашел апач, узнал домен, позадавал мне вопросы, а потом сам подтвердил домен, залил сертификат в /etc и добавил его в апач. Мне осталось только зайти на сайт и с удивлением увидеть, что у него уже есть сертификат.

Йопт. И мне это нужно на КАЖДОМ сервере делать?

kirk_johnson ★☆
()
Ответ на: комментарий от HeipaVai1o

Вот только на официальном сайте никакой инфы. Давайте теперь лазать по github и искать всякие скриптики по теме. Жесть.

th3m3 ★★★★★
() автор топика
Ответ на: комментарий от kirk_johnson

Да. И для каждого сайта. Даже для каждого поддомена.

th3m3 ★★★★★
() автор топика
Последнее исправление: th3m3 (всего исправлений: 1)

Может, конечно, это я такой неосилятор

Да, ты неосилятор, th3m3. Cмотри и учись: https://tlhp.cf/get-free-ssl-cert/

Нигде ничего не запоролось, сертификаты получил сразу, никаких конфигов не редактировал вообще.

Deleted
()
Ответ на: комментарий от Deleted

Серьезно?

sudo python -c "import BaseHTTPServer; \
    h = BaseHTTPServer.BaseHTTPRequestHandler; \
    h.do_GET = lambda r: r.send_response(200) or r.end_headers() or r.wfile.write('{\"header\": {\"alg\": \"RS256\"}, \"protected\": \"eyJhbGciOiAiUlMyNTYifQ\", \"payload\": \"ewogICAgInRscyI6IGZhbHNlLCAKICAgICJ0b2tlciI6ICJkbzVaWkMwMHVwZmNFD0tjeEhzOGNyS2FNaE02UFdBdTMtMnVwZ00zRG00IiwgCiAgICAidHlwZSI6ICJzaW1wbGVIdHRwIgp9\", \"signature\": \"Gp5V68da_XdC96piXs1YOhrv4USOQBNnhIL-CMmxvKSigmxAJ8z00xsgWS6nsYD8LPpMVa3GkXhb10qfbymPiWhtMpMYD31kMLFwgpHrY9xkiNP-WK9Zljz6L-WAzxCOmF1Ov71z_75iEJij86E2f9EmTjDlmDmGAjP9lziII42uyyjjIZg9claU1GtFZUrfXd-uNHHEGHFUpoyLHQcyWCP1T04Xx4q4dY51VeOJNOmIv9csIjkbOma7EqFMAHwYAplAUE45FQ5N9lJvpymD49BoEgQj_kjH-UPnxO3q0QB0i-MJJCiwQYAhMKV618jV9rNE181zJ1FRkX48knMzqoE4oG3yEFUg2D_vAdFG3VCuotnuxrZ7BEzDPWyEm0z8XakxWQW-xHSADtKWRr1qsQCy7qVsoAKnVFQ_1b4rAzET1YfrmhSH4MVhMB5n9tOnjtPQ0OsJVbf0oVLh5AC1rbXe68weOQExDVJgsk56x3FvvwrmdaLe2TnbPJmzpkYUf1OK88e8KmhVYb34veuY1luDOBJQyQ9fOAGZC0F-g7SpWg1lp3hQzf5enkycHMK-fNAfFH7r1m1Ej_CvUuxfBVhI0W8ANpFWL4r8PxTZeZzE6NO38MYgB9nrICiKJuuTQQbsXdjOm22QuxrG1XpWA-vQCtbk-L891Ko6MdAUMzQ\"}'); \
    s = BaseHTTPServer.HTTPServer(('0.0.0.0', 80), h); \
    s.serve_forever()"
kirk_johnson ★☆
()
Ответ на: комментарий от Deleted

Я вижу там только apache. Опять же, на официальном сайте где что-то похожее? Нужно по всей сети искать статьи(ещё не факт, что там всё правильно), чтобы настроить их приблуду?

th3m3 ★★★★★
() автор топика
Ответ на: комментарий от th3m3

Я вижу там только apache.

А я вижу не только апач. Читай до конца и не набрасывай говно на вентилятор.

Опять же, на официальном сайте где что-то похожее? Нужно по всей сети искать статьи

Моя статья является step-by-step компиляцией оф. документации и документации клиента LE. Недостатки документации: недостаточно разжовано для новичков и нет пошаговой инстукции. Однако я, человек без 30-летнего опыта в python/webdev не встретил проблем.

Deleted
()
Ответ на: комментарий от Deleted

А ты всегда на боевом сервере копипастишь команды из статей в интернете? Я вот как-то не хочу делать бездумные вещи. Совсем не хочется бегать с бекапами и восстанавливать всё потом.

th3m3 ★★★★★
() автор топика
Ответ на: комментарий от th3m3

Авто-конфигурация да, только для Apache. Но у меня nginx, так что я не стал экспериментировать и запросил certonly. Утилита отработала, сказала, куда положила ключи. Заменил старые ключи на новые в конфиге nginx — и готово.

До обновления дело не дошло пока. Но обещали, что достаточно просто запустить снова. Доказательство владения доменом есть, при обновлении гасить сервер не понадобится.

i-rinat ★★★★★
()
Последнее исправление: i-rinat (всего исправлений: 1)
Ответ на: комментарий от i-rinat

Все так, стопать вебсервер не обязательно, достаточно выбрать альтернативный вариант верификации.

Deleted
()
Ответ на: комментарий от th3m3

Никогда не копипащу, в этом случае я понимаю что делает эта команда.

Deleted
()
Ответ на: комментарий от Deleted

Так сделают, спецификации открыты. Верифицировать можно также по html-файлу.

Знаешь почему конфигурация fontconfig на xml? Потому что разрабы иксов думали, что кто-нибудь напишет конфигуратор - спеки-то открыты :D

kirk_johnson ★☆
()

Let's Encrypt предлагает запускать на сервере свой софт(который ещё свой сервер поднимает, epic)

А можно и в crontab засунуть запуск от непривилегированного юзера.

который будет править конфиги

Необязательно. Это для тех, кто не может сам осилить добавление шифрование для веб-сервера. Да и править конфиг надо единократно.

да ещё и дёргать новый серификат постоянно

Да.

Но вообще сорцы открыты, API открыт, можешь проверить текущую реализацию или запилить свою, если нет доверия их софтине.

В общем, пока похоже, что ты сам не до конца разобрался.

Chaser_Andrey ★★★★★
()
Ответ на: комментарий от th3m3

Кроме боевых есть еще тестовые среды, на них практиковаться не судьба?

Deleted
()

Этот трэд полон реально поехавших людей. Кто-то на полном серьёзе говорит что вендорская тулза для получения и обновления сертификатов это ок? «Запускать в кроне», «все рукожопы, я запустил оно мне само всё сделало и всё работает» и прочее прочее. Аж жутко стало, пятизвёздочные мракобесы-локалхотеры-виндузятники.

iu0v1
()
Ответ на: комментарий от kirk_johnson

Я тоже об этом думал, мне кажется для большого набора машин все фронтенды должны форвардить конкретный URL токена на одну машину, на которой пытаются получить сертификат. Или плясать через автоматизацию manual режима

vertexua ★★★★★
()
Ответ на: комментарий от Chaser_Andrey

Он требует root. Я думаю что репутация проекта позволяет ей довериться. Ведь у тебя и линукс сам по себе на проде работает, не боишься?

vertexua ★★★★★
()
Ответ на: комментарий от iu0v1

Этот проект изначально не для компаний (хотя они тоже могут пользоваться) - у них и так есть админ, который все настроит и бабки чтобы купить сертификат. Этот сертификат для всех владельцев мелких сайтов, которым и сертификат за деньги нафиг не нужен и которые разбираться в процедуре генерации сертификата через openssl не готовы - скачал, запустил, сертификат есть и настроен. Они просто вляпались в то, что каждый дистрибутив считает своим долгом сделать все по своему, поэтому не у всех все работает, поэтому beta.

Есть startssl в конце концов, если вы их клиенту не доверяете.

elhana
()

А что, обязательно доказывать владение доменом через HTTP? Вроде планировали и другие схемы, нет?

Deleted
()
Ответ на: комментарий от th3m3

Есть обходные пути. Вот один из моих кривых велосипедов: https://www.dim13.org/zero-downtime-letsencrypt

С некоторыми клиентами можно и просто проксировать /.well-known/acme-challange/ в другое место.

beastie ★★★★★
()
Последнее исправление: beastie (всего исправлений: 1)
Ответ на: комментарий от i-rinat

Вторая беда — эту операцию надо повторять минимум каждые 3 месяца. Т.ч. в ручную — no way.

У этого клиента интерессный подход. Правда, я его не тестил. Хочу что-то похожее запилить и в своём (будущем) клиенте.

beastie ★★★★★
()
Ответ на: комментарий от Deleted

Потому что, к сожалению, авторов официального клиента в детстве регулярно роняли на голову.

Хотели как лучше (что бы John Doe (секретутка)) смогла всё это поднять, а получилось, как обычно. Даже мне пришлось пое повозиться, что бы заставить его работать.

beastie ★★★★★
()
Ответ на: комментарий от elhana

Тут есть упор на автоматизацию, не вижу никаких трудностей для компаний.

Есть startssl в конце концов

Говно, которое не поддерживает все домены и отзывает сертификаты на свое усмотрение? Даром не нужно.

Deleted
()
Ответ на: комментарий от beastie

Там есть вариант с временной установкой файла в webroot. А при обновлении, по идее, не нужно уже подтверждать владение доменом.

i-rinat ★★★★★
()
Ответ на: комментарий от ksa242

В ручном режиме запускать letsencrypt-auto можно где угодно, хоть под «одноразовой» OS с флешки.

Еще один. Зачем искать _оправдания_ каким-то анальным костылям, когда можно делать что-то без них, и это _100% работает_?

iu0v1
()
Ответ на: комментарий от elhana

Этот проект изначально не для компаний (хотя они тоже могут пользоваться) - у них и так есть админ, который все настроит и бабки чтобы купить сертификат.

Что ты несёшь?

Ты читал их политику? Читал с чего это получилось, и какие бенефиты они преследуют? Я - да. А ты, видимо, нет (прямо как классический «верующий» и библия).

Всё что ты сказал - это выдуманная тобой же отсебятина, нацеленная на оправдание этого анального подхода к уже давно решенному вопросу.

И даже если бы то что ты наплёл было правдой, то это не оправдывало бы корявости методов, хоть то для больших сайтов, хоть для маленьких.

iu0v1
()
Ответ на: комментарий от iu0v1

Кто-то на полном серьёзе говорит что вендорская тулза для получения и обновления сертификатов это ок?

Можешь пожалуйста развернуть мысль?

По задумке ACME — это протокол не только к LE, но и к любому другому CA, поддерживающий этот протокол.

Далее, что плохого в том, что оно само, автоматически будет мне обновлять сертификаты? Это не только «домохозяйкам» полезно.

Я, например, целюсь в сторону полностью автоматического развёртывания SSL-only хостов (ansible + docker + letsencrypt) в стиле «fire'n'forget». Упрощение возни с сертификатами мне только на руку.

beastie ★★★★★
()
Последнее исправление: beastie (всего исправлений: 1)
Ответ на: комментарий от iu0v1

На официальном клиенте свет клином не сошёлся. За 2 треда уже насчитали минимум 5-7 альтернативных подхода.

beastie ★★★★★
()
Последнее исправление: beastie (всего исправлений: 1)
Ответ на: комментарий от beastie

По задумке ACME — это протокол не только к LE, но и к любому другому CA, поддерживающий этот протокол.

Много ли таких? И что важнее, много ли клиентов, что на такое запилены?

Далее, что плохого в том, что оно само, автоматически будет мне обновлять сертификаты?

Скрипт, работающий от рута. Или специально для него создавать отдельную микрофлору прав и доступов. Или пилить отдельную надстройку/врапер вокруг этой вендорской беды, что бы всё равно наплодить костылей и воевать с этим софтом. При том, что всё уже придумано до нас (с), и оно работает, и оно прямое. Ладно бы они дали выбор: удобно приблудой - на, удобно по старинке - на.

Я, например, целюсь в сторону полностью автоматического развёртывания SSL-only хостов (ansible + docker + letsencrypt) в стиле «fire'n'forget». Упрощение возни с сертификатами мне только на руку.

А я имею опыт укладывания работы 8к хостов, от завязки на подобную вендорскую хрень. Просто в определённый момент вендор подправил протокол, и пожал плечиками. И сертификаты не приехали. И дела немного стали раком.

Или тут скрипт может обновить сам себя? А если может, ты представляешь какая это дыра?

iu0v1
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.