Согласен со всем вашими аргументами. На самом деле я тоже считаю, что генерировать сертификат в браузере с помощью js скрипта с сайта, тем более вручную — не годится как основное решение.
Есть еще частный случай — когда у вас свой nameserver. Нашел интересную штуку https://github.com/joohoi/acme-dns — простой DNS сервер с REST API специально для ACME DNS challenge.
Я проверил, даже DNS админы PayPal не смогут получить сертификат на paypal.com от Let's Encrypt — очевидно, этот домен в черном списке: Policy forbids issuing for name. Также под запретом google.com, mail.ru, vk.com. Логичный шаг.
Есть такая интересная вещь как Public Suffix List. Это список «публичных» доменов различных уровней, чьи суб-домены — по сути различные сайты. Let's Encrypt использует его для расчета ограничений по выпуску сертификатов. Вот этот список, *.org.ru туда входит.
По логике, они должны его же и использовать для запрета выдачи wildcard. Я проверил несколько штук, почему-то не все под запретом. Например, *.chiba.jp — нельзя, а *.spb.ru — можно. Странно.
Сам домен можно держать и оплачивать у текущего регистратора, а вот ns сервера можно указать произвольные. Я использовал Azure DNS и AWS Route 53 — они надежные и стоят пол-доллара в месяц. Есть и бесплатные, вот, например. Смотрите мой коммент.
По поводу DNS challenge. Чтобы пройти его автоматом ваш домен должен резолвиться через nameserver с поддержкой API + бот/скрипт должен уметь им пользоваться. В админке регистратора всегда можно перейти на другой nameserver, для которого уже есть готовое решение. Вот пример, я только что перевел свой домен на AWS Route 53 — он стоит пол-доллара в месяц.
*.ru — нельзя, дает ошибку
*.org.ru — можно )
Add TXT record with the name/host _acme-challenge.org.ru with the value vlwTnpiyF0kdNPyQy7MfWyvsHgAcPNhNet2IwKI8B6U
Я абсолютно согласен, что генерировать сертификат через браузер это не самый лучший и безопасный способ. Однако в приведенном примере приватный ключ генерируется в самом браузере, и более того, можно использовать CSR (Certificate Signing Request).
Если пользоваться нормальным браузером, то ключи не передаются на сервер.
Private Keys are generated in your browser and never transmitted.
For modern browsers we generate a private key in your browser using the Web Cryptography API and the private key is never transmitted. The private key also gets deleted off your browser after the certificate is generated. If your browser does not support the Web Cryptography API then the keys will be generated on the server using the latest version of OpenSSL and outputted over SSL and never stored. For the best security you are recommended to use a supported browser for client generation. You can also provide your own CSR when using manual verification in which case the private key is handled completely on your end.
Имеется массив натуральных чисел. Каждое из чисел присутствует в массиве ровно два раза, и только ДВА числа не имеют пары. Необходимо предложить алгоритм, который за ФИКСИРОВАННОЕ количество проходов по массиву и используемой памяти определяет оба этих числа, не имеющих пары.
Я начал вести учет своих расходов сразу как начал работать в 2009 году. Первые годы это был Sanuel Family, платное десктопное приложение. В 2013 перешел на Homemoney (веб + андроид), была куплена пожизненная подписка (сейчас вроде такой уже нет). Однако я пришел к выводу, что ни одна из существующих программ меня полностью не устроит, и была даже мысль написать свою.
Хотя я не составляю бюджет и редко пользуюсь аналитическими отчетами, все же простой учет счетов, расходов и доходов стал очень полезной привычкой. Я думаю, это важная часть финансовой культуры человека.
Кстати, мне лично нравится эта идея. Что «защищенным» зеленым соединением будет только EV сертификат. Просто http, как и планируется, будет красным. А обычный DV сертификат — вообще не выделятся цветом или словом «secure», что будет означать «на этом сайте стандартный уровень безопасности».
Я, например, сразу замечу, что адресная строка браузера не такая, как обычно. Если веб-сайту действительно очень важен высокий уровень безопасности соединения, то покупка EV сертификата это разумно. Посетители сайта не только должны привыкнуть его видеть, но и замечать, если он вдруг стал «просто зеленым».
Появление тысяч «защищеных» фишинговых сайтов было неизбежно, но тут вступают в бой EV сертификаты. Они и раньше были, но теперь из значимость гораздо больше, так что CA без хлеба не останутся. И нужно, конечно, приучать самих пользователей различать EV от DV.
Это не так. При проверке цепочки сертификатов веб-сервера браузер смотрит сходится ли она к одному из локальных корневых доверенных сертификатов. Запросы в интернет делаются только для проверки неотозванности сертификата.
По логике, они должны его же и использовать для запрета выдачи wildcard. Я проверил несколько штук, почему-то не все под запретом. Например, *.chiba.jp — нельзя, а *.spb.ru — можно. Странно.
По поводу DNS challenge. Чтобы пройти его автоматом ваш домен должен резолвиться через nameserver с поддержкой API + бот/скрипт должен уметь им пользоваться. В админке регистратора всегда можно перейти на другой nameserver, для которого уже есть готовое решение. Вот пример, я только что перевел свой домен на AWS Route 53 — он стоит пол-доллара в месяц.
*.org.ru — можно )
Add TXT record with the name/host _acme-challenge.org.ru with the value vlwTnpiyF0kdNPyQy7MfWyvsHgAcPNhNet2IwKI8B6U
Хотя я не составляю бюджет и редко пользуюсь аналитическими отчетами, все же простой учет счетов, расходов и доходов стал очень полезной привычкой. Я думаю, это важная часть финансовой культуры человека.
Писать свой браузер — это в самом деле очень круто. Интересно видеть, что "большие" браузеры довольно активно релизятся.
Chrome:
https://www.chromestatus.com/features/schedule
Firfox:
https://wiki.mozilla.org/Firefox/Roadmap/Updates#2018-02-12
https://wiki.mozilla.org/RapidRelease/Calendar
https://wiki.mozilla.org/Features/Release_Tracking
Safari:
https://webkit.org/status/
https://webkit.org/blog/8088/release-notes-for-safari-technology-preview-49/
https://developer.apple.com/safari/technology-preview/release-notes/