Let's Encrypt vs ZeroSSL
![топ 100 блогов](/media/images/default.jpg)
Про Let's Encrypt вроде бы все давно всё знают. Дернуло тут меня попробовать чего-то новенького и я обратил таки внимание на ZeroSSL. Это типа такой аналог, тоже дает халявные X509-сертификаты на три месяца, но есть и некоторые отличия, по причине которых он достоин внимания.
Когда я в первый раз посмотрел на это чудо науки и техники, меня отпугнули три обстоятельства.
- Нельзя выпускать сертификаты для российских и белорусских доменов.
- Присутствуют какие-то неочевидные ограничения, которые толком на сайте нормально не расписаны.
- Если приходишь на сервис с российского IP-адреса, он отвечает "403 давайдосвиданья".
На практике всё оказалось не так страшно и местами даже смешно.
- Никто не мешает выпускать сертификаты на домен ".рф"
(внезапно), ну и на любые другие не перечисленные в списке.
- Регистрироваться там в веб-морде вообще не нужно. От слова
"совсем". ACME прекрасно работает без
СМС ирегистрации на сайте. - Первоначальный ключ для доступа к сервису нужно получить таки с
не-российских IP-адресов. А выпускать-обновлять сертификаты
впоследствии можно и с российских. Т.е., грубо говоря, в первый раз
мы запускаем условный Dehydrated где-нибудь на немецком VPS, потом
переносим оттуда конфиги и дальше вполне себе нормально работаем с
российского.
Теперь о смешном.
Что ACME-аккаунт, что "вебмордный" аккаунт привязываются к адресу электронной почты. И выпущенные через ACME сертификаты потом видны в веб-морде личного кабинета. При этом.
- В личном кабинете есть упоминание про ограничение на три штуки 90-дневных сертификата на аккаунт. На практике выпущенные через ACME сертификаты "не считаются" и их можно плодить сколько угодно.
- Адрес электронной почты вообще нигде, никем и никогда не проверяется. То есть теоретически Петя может выпустить N сертификатов, указав адрес "[email protected]", а потом коварный Вася зарегистрирует этот же адрес в личном кабинете и увидит все Петины сертификаты. Не знаю кому и зачем оно могло бы понадобиться, но для около ИБшного сервиса такое должно быть как минимум стыдно.
Теперь о важных отличиях ZeroSSL от Lets Encrypt.
Во-первых, Lets Encrypt активно хоронит OCSP Stapling. У ZeroSSL с последним всё хорошо. Не то чтобы оно являлось прям киллер-фичей, но со Stapling-ом TLS-рукопожатие выполняется побыстрее, и мне это нравится.
Во-вторых, Lets Encrypt использует сравнительно молодой ISRG Root X1, а ZeroSSL — довольно боянистый UserTrust CA. Это может быть полезно для всяких любителей некрофилии. Так, например, первый "из коробки" Windows XP не признает, а вот второй вполне себе. Так что если предполагается хождение на веб-сервер достаточно древних клиентов, то ZeroSSL вполне может выручить.
Ещё пару слов про ACME-клиентов.
Я тут попробовал "acme.sh". Для новичков он, конечно, "самое то". Сам инсталлируется, сам регистрируется, сам себя в крон добавляет, сам нужные папки создает. Но вот лично мне не нравится когда кто-то шарится в системе без моего ведома. Плюс, у меня так и не получилось выпустить при его помощи RSA-сертификат: у него по умолчанию всё заточено под EC.
А вот Dehydrated мне в этом плане куда как ближе. Он тоже умеет в ZeroSSL. Единственное, нужно сразу определиться каким инструментом пользоваться, по какому алгоритму выпускать ключи, и в дальнейшем продолжать в том же духе. Поменять одно на другое впоследствии будет проблематично.
И про настройки Nginx-а. Если нужен какой-то Virtual Host прицельно под некрофилию типа Windows XP, то под него придется выделять свой IP-адрес и привязывать к нему свой конфиг. Потому что настройки под "свежий" TLS будут конфликтовать с настройками под "тухлый" TLS. Nginx не выдаст никакой ошибки, даже в логах уровня debug будет тишина. Но использовать он будет всё равно "свежие" настройки, поэтому некроклиент не сможет согласовать набор шифров при рукопожатии. Это тоже нужно иметь в виду.
|
</> |