to post messages and comments.

ACME allows a client to request certificate management actions using a set of JSON messages carried over HTTPS.
Дегенераты! Какой бляйжд ЖСОН? PLAIN TEXT должен быть, KEY=VALUE в худшем случае, суки! Да XML себе в жопу засуньте! Какого МПХ все должны парсить ваши семиструктурированные данные?

Код клиента должен помещаться на одном экране, дебилы! Такие же уже написали BIND 10 на питоне, и где он?

Letsencrypt в октябре анонсировал поддержку IDN доменов. Что сделала умная Маша Филиппок? Правильно — не проверив убрала "xn--" из стоп-листа для формирования списка доменов для CSR. Жеванный крот, чтоб я так миллионы пилил. За гринкарту готов в одно жало навести там порядок в ПО. Ok, в два жала.

Поплясала с бубном, пописала скрипты и вроде настроила обновление сертификатов Let's Encrypt так, как мне нужно. Ну, может быть идея товарищей выпускать сертификаты на три месяца, чтобы форсировать автоматизацию, была не такой уж и плохой.

Первый косяк скрипта github.com — не смог обновится сертификат. Но письма крона, известили о проблеме узнать заранее... Обновил скрипт до последней версии, а он не видит конфиг. Пришлось читать историю коммитов и делать: mv /etc/letsencrypt.sh/config.sh /etc/letsencrypt.sh/config .
Новая версия скрипта обновить сертификат осилила.

О, коллеги. Есть проблема. Хочу автоматизировать получение Letsencrypt на сложной и запутанной веб-системе. Для этого ме нужен асинхронный клиент.
1. запросил токен на домен
2. запросил проверку домена по разложенному токену
3. запросил выпуск сертификата по CSR
тремя разными действиями
уже с десятка полтора посмотрел — хорошо если два умеют хотя б третье действие делать отдельно, а вот 1 и 2 отдельно вообще никто не умеет. пытался смотреть библиотеки — все горомоздкие, если год не разбирать доки косые и кривые. github.com вот это выглядит более менее нормально. Но непонятно будет ли развиваться и конечно не готовое. А такого же на питоне нету?

На одном из серверов по историческим причинам в качестве реверс-прокси стоит pound. Так вот, использовать его для HTTPS — не очень хорошая идея, так как у него штатными способами не отключается SSLv3, а если указать !SSLv3 в списке шифров, то отваливается куча всего, включая последнюю версию Firefox. Поэтому для HTTPS придётся протянуть руки к клавиатуре и настроить nginx. С правильным конфигом и включённым HSTS получаем рейтинг A+ на ssllabs и радуемся жизни.

Для голого HTTP же можно оставить всё как есть. Его же будем использовать для проверки контроля доменного имени.

Добавляем в ListenHTTP первым сервисом сразу после опций:

Service
URL "^/.well-known/acme-challenge/.*"
BackEnd
Address 127.0.0.1
Port 8088
End
End

И рестартим pound.

Дальше всё просто:

sudo letsencrypt certonly --standalone --http-01-port 8088 --standalone-supported-challenges http-01 --rsa-key-size 4096 -d my.domain.name

Всё. Прописываем полученный сертификат в nginx и идём пить пиво.

We’re sometimes asked why we only offer certificates with ninety-day lifetimes.... short certificate lifetimes... encourage automation, which is absolutely essential for ease-of-use. If we’re going to move the entire Web to HTTPS, we can’t continue to expect system administrators to manually handle renewals. Once issuance and renewal are automated, shorter lifetimes won’t be any less convenience than longer ones