Как установить бесплатный SSL-сертификат Let’s Encrypt на Dedicated сервер?

Клиент WACS для установки TLS сертификата Let’s Encrypt в IIS на Windows Server

Самый простой способ получить SSL сертификат от Let’s Encrypt — воспользоваться консольной утилитой Windows ACME Simple (WACS) (ранее проект назывался LetsEncrypt-Win-Simple). Она представляет собой простой мастер, который позволяет выбрать один из сайтов, запущенных на IIS, и автоматически выпустить и привязать к нему SSL сертификат.

Итак, предположим у нас имеется веб сайт на IIS, развёрнутый под управлением Windows Server 2016. Наша задача, переключить его в HTTPS режим, установив SSL сертификат от Let’s Encrypt.

Скачайте последний релиз клиента WACS со страницы проекта на GitHub https://github.com/PKISharp/win-acme/releases  (в моем случае это версия v2.0.10 – файл win-acme.v2.0.10.444.zip).

Распакуйте архив в каталог на сервере с IIS: c:\inetpub\letsencrypt

Для использования Win-Acme требуется установить .NET Framework 4.7.2 или выше (Как узнать какая версия .Net установлена?).

Откройте командную строку с правами администратора, перейдите в каталог c:\inetpub\ letsencrypt и запустите wacs.exe.

Запустится интерактивный мастер генерации сертификата Let’s Encrypt и привязки его к сайту IIS. Чтобы быстро создать новый сертификат выберите N — Create new certificates (simple for IIS).

Затем нужно выбрать тип сертификата. В нашем примере нет необходимости использовать сертификат с псевдонимами (несколькими SAN — Subject Alternative Name), поэтому достаточно выбрать пункт 1. Single binding of an IIS site. Если вам нужен Wildcard-сертификат, выберите опцию 3.

Далее утилита выведет список сайтов, запущенных на сервере IIS и предложит выбрать сайт, для которого нужно создать и привязать новый SSL сертификат.

Процесс генерации и установки SSL сертификата Let’s Encrypt для IIS полностью автоматизирован.

По умолчанию выполняется валидация домена в режиме http-01 validation (SelfHosting). Для этого нужно, чтобы в DNS домена имелась запись, указывающая на ваш веб сервера. При запуске WACS в ручном режиме можно выбрать валидацию типа — 4 Create temporary application in IIS (recommended). В этом случае на веб-сервере IIS будет создано небольшое приложение, через которое сервера Let’s Encrypt смогут провести валидацию.

Примечание. При выполнении TLS/HTTP проверки ваш сайт должен быть доступен снаружи по полному DNS имени по протоколам HTTP (80/TCP) и HTTPS (443/TCP).

Утилита WACS сохраняет закрытый ключ сертификата (*.pem), сам сертфикат и ряд других файлов в каталог C:\Users\%username%\AppData\Roaming\letsencrypt-win-simple. Затем она в фоновом режиме установит сгенерированный SSL сертификат Let’s Encrypt и привяжет его к вашему сайту IIS. Если на сайте уже установлен SSL сертификат (например, самоподписанный), он будет заменен новым.

В IIS Manager откройте меню Site Binding для вашего сайта и убедитесь, что для него используется сертификат, выданный Let’s Encrypt Authority X3.

Этот сертфикат будет доверенным, если вы своевременно обновляли корневые сертфикаты Windows.

В хранилище сертификатов компьютера сертификат Let’s Encrypt для IIS вы можете найти в разделе Web Hosting -> Certificates.

Windows ACME Simple создает новое правило в планировщике заданий Windows (win-acme-renew (acme-v02.api.letsencrypt.org)) для автоматического продления сертификата. Задание запускается каждый день, продление сертификата выполняется через 60 дней. Планировщик запускает команду:

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

Related

  • Tutorial

    Автор выбрал фонд Free and Open Source Fund для получения пожертвования в рамках программы Write for DOnations. Хотя используемая по умолчанию установка сервера [Apache…

  • Tutorial

    Веб-сервер Apache — популярный способ размещения сайтов в Интернете. Согласно оценкам, в 2019 году на базе этого веб-сервера работали 29% всех активных сайтов. Он обеспечивает разработчикам преимущества гибкости и надежности. Используя Apache, администратор может настроить один…

  • Tutorial

    В этом обучающем руководстве мы познакомимся с настройкой нескольких доменов и сайтов с помощью виртуальных хостов Apache на сервере Ubuntu 18.04. Во время этого процесса вы научитесь предоставлять разный контент разным посетителям в зависимости от того, какие домены они…

  • Tutorial
    Использование Cron для автоматизации задач в Ubuntu 18.04

    Предыдущая версия данного обучающего руководства была написана Шоном Льюисом. Cron — это хронологический демон-планировщик задач, работающий в операционных системах типа Unix, включая дистрибутивы Linux. Cron запускается в фоновом режиме,…

Выпуск и отзыв сертификатов

После авторизации ключевой пары, запрос, обновление и отзыв сертификатов становится делом одной минуты—агент просто посылает текстовые сообщения в Центр сертификации

Для получения сертификата для , агент составляет запрос в ЦС Let’s Encrypt согласно PKCS#10 Certificate Signing Request. Обычно, CSR содержит цифровую подпись закрытого ключа, соответствующий ему открытый ключ, а также подписывается целиком авторизованной ключевой парой.

При получении CSR, ЦС Let’s Encrypt проверяет подписи ключевой пары. Если всё в порядке, Центр Сертификации выпускает сертификат для с открытым ключом из CSR, и отправляет его агенту.

Отзыв сертификата происходит аналогично. Агент подписывает запрос об отзыве ключевой парой, авторизованной для . Как только ЦС Let’s Encrypt подтверждает цифровые подписи запроса, он публикует информацию об отзыве сертификата, используя OSCP. Таким образом браузеры, полагаясь на данные из OSCP, не будут принимать отозванные сертификаты.

2: Получение сертификата

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

Примечание: Плагины, которые помогают получить сертификат, но не устанавливают его, называются аутентификаторами.

В данном руководстве для создания SSL-сертификата используется плагин Webroot.

Использование плагина Webroot

Плагин Webroot помещает специальный файл в каталог /.well-known в каталоге document root, который сервис Let’s Encrypt может открыть для подтверждения через веб-сервер. В зависимости от настройки может понадобиться явно разрешить доступ к каталогу /.well-known.

Если Nginx ещё не установлен, установите его:

Чтобы сервис Let’s Encrypt смог получить доступ к каталогу, отредактируйте настройки Nginx. Откройте стандартный конфигурационный файл (/etc/nginx/sites-available/default) в текстовом редакторе:

Добавьте в блок server новый блок location.

Также нужно проверить настройку каталога document root, за который отвечает директива root. По умолчанию каталогом document root является /var/www/html.

Сохраните и закройте файл.

Перезапустите Nginx:

Теперь можно использовать плагин Webroot для запроса SSL-сертификата. При помощи флага –d укажите доменное имя; чтобы создать один сертификат для нескольких доменных имён (например, example.com и www.example.com), укажите их в команде. Замените условные данные в команде своими данными.

Примечание: Программное обеспечение Let’s Encrypt требует привилегий суперпользователя, потому программа предложит ввести пароль.

После запуска letsencrypt запросит некоторые данные.

Примечание: Вопросы, задаваемые при первом запуске программы, отличаются от вопросов, задаваемых при дальнейшем её использовании. В руководстве предполагается, что программа запущена впервые.

Укажите адрес электронной почты, который будет использоваться для отправки извещений и восстановления утерянных ключей.

После этого нужно принять условия соглашения подписчика Let’s Encrypt.

Если всё выполнено правильно, программа вернёт:

Выпишите или запомните путь и срок действия сертификата (в примере они выделены красным).

Важно! Если вы получили ошибку Failed to connect to host for DVSNI challenge, разблокируйте трафик на портах 80 и 443. Примечание: В некоторых случаях домен нужно отключить на время получения сертификата

Примечание: В некоторых случаях домен нужно отключить на время получения сертификата.

Файлы сертификата

После получения сертификата на сервере появятся следующие PEM-файлы:

  • cert.pem: сертификат домена.
  • li>chain.pem: сертификат цепочки Let’s Encrypt.
  • fullchain.pem: комбинация cert.pem и chain.pem.
  • privkey.pem: закрытый ключ сертификата.

Важно знать место хранения сертификата, так как его нужно будет указать в конфигурации веб-сервера. Файлы хранятся в подкаталоге /etc/letsencrypt/archive, также Let’s Encrypt создаёт символьную ссылку на наиболее актуальный сертификат в каталог /etc/letsencrypt/live/your_domain_name

Чтобы убедиться, что все файлы существуют, нужно выполнить такую команду:

Команда покажет список существующих файлов.

Ключи Диффи-Хеллмана

Чтобы увеличить уровень защиты, нужно сгенерировать ключи Диффи-Хеллмана. Чтобы сгенерировать 2048-битные ключи, введите:

Выполнение команды займёт несколько минут. Ключи DH будут храниться в /etc/ssl/certs/dhparam.pem.

Step 2 — Setting up Nginx

Certbot can automatically configure SSL for Nginx, but it needs to be able to find the correct block in your config. It does this by looking for a directive that matches the domain you’re requesting a certificate for. If you’re starting out with a fresh Nginx install, you can update the default config file:

Find the existing line:

/etc/nginx/sites-available/default

Replace with your domain name:

/etc/nginx/sites-available/default

Save the file and quit your editor. Verify the syntax of your configuration edits with:

If that runs with no errors, reload Nginx to load the new configuration:

Certbot will now be able to find the correct block and update it. Now we’ll update our firewall to allow HTTPS traffic.

Настройка HTTPS (SSL/TLS) в Apache

Откройте файл конфигурации Apache для сайта (обычно это: /etc/apache2/vhosts/userName/) и добавьте следующие строки:

SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/devreadwrite.com/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/devreadwrite.com/privkey.pem

В итоге получится что-то вроде:

        ServerAdmin #... webmaster@localhost
        DocumentRoot #... /var/www/html
        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined

        SSLEngine on
        SSLCertificateFile /etc/letsencrypt/live/devreadwrite.com/cert.pem
        SSLCertificateKeyFile /etc/letsencrypt/live/devreadwrite.com/privkey.pem

        #...
    

Перезапускаем Apache:

service apache2 restart

301 редирект с протокола http на https в Apache

Добавьте следующий код в файл .htaccess вашего сайта:

RewriteCond %{HTTPS} !=on
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 

Еще ридиректы в Apache: 301 редирект на все случаи жизни с помощью .htaccess.

Создание сертификата

Есть два способа получения Let’s Encrypt сертификата:

Из раздела WWW->SSL-сертификаты.

Нажимаем на кнопку Let’s Encrypt и в появившемся окне нужно заполнить данные для генерации сертификата

Выбираем пользователя (если создание сертификата происходит из-под root) и домен.

Далее указываем свои данные (Код страны, город, e-почту etc.) и длину приватного ключа для сертификата (влияет на криптоустойчивость).

Вместе с новым www-доменом

При создании нового домена, если выбран пункт Защищенное соединение (SSL), появится дополнительная опция для выбора сертификата — Let’s Encrypt сертификат. После заполнения всей необходимой информации для создания домена произойдет перенаправление на форму создания нового Let’s Encrypt сертификата.

Получение и настройка бесплатного SSL сертификата Let’s Encrypt для сайта с помощью CertBot

  • Для успешного получения сертификата домен должен быть делигирован и доступен по адресу на машине, где будет запускаться генерация сертификата.
  • Сертификат действует в течении 90 дней, поэтому необходимо настроить его автоматическое обновление.
  • Предполагается, что корневая директория веб-сервера находится в /var/www

Установка и настройка CertBot

Клиент CertBot можно найти в репозитории некоторых дистрибутивов систем, но скорее всего там он будет весьма неактуальной версии, поэтому устанавливать лучше вручную.

  1. Скачиваем скрипт

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

  2. Устанавливаем зависимости
  3. Чтобы избавить себя и других от запоминания параметров команды, необходимо настроить файл конфиругаций в

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

  4. Создаем ежедневную Cron задачу на обновление сертификатов
  5. Настройка webroot для валидации домена при получении сертификата.

    Для этого в зависимости от используемого веб-сервера необходимо дать доступ к следующему адресу http://домен-сайта/.well-known/acme-challenge/ok.html

    Ниже будут приведены настройки для наиболее часто используемого веб-сервера Nginx:

    Далее открываем конфиг домена, для которого настраиваются сертификаты и в блоке на 80 порту находим первый и перед ним добавляем следующее:

    • Проверяем, что всё сделали правильно командой и нет никаких ошибок.
    • Затем перезапускаем nginx
    • Открываем сайт по адресу http://домен-сайта/.well-known/acme-challenge/ok.html и видим сообщение ОК, если не видим, значит что-то сделано не так, вероятно код размещен не в нужном месте.
    • После чего уже можно проверить работу получения сертификата, запустив команду в режиме для тестов:

    В конце программа должна отчитаться об успешной работе:

    После чего уже можно получать настоящий сертификат.

  6. Получение сертификата
    • Сертификат можно получить для домена и всех его реальных рабочих поддоменов следующей командой:
    • Для каждого домена второго уровня желательно запускать новую команду.
    • Проверить сгенерированные сертификаты можно сделующей командой:
  7. Добавление/Изменение поддоменов в уже сгенерированный сертификат.
    • Добавить можно с помощью указания специального параметра
    • Комада работает в режиме “перезапись”, поэтому указывать необходимо ВСЕ доменные имена, которые были добавлены в сертификат ранее.
  8. Генерируем dhparam.pem https://weakdh.org/sysadmin.html

Подключаем сгенерированный сертификат к домену

Для этого в конфиге нужного нам домена в секции находим строку и ниже неё добавляем:

  • Пути к файлам сертификатов заменяем на реальные, полученные в пункте 6.
  • Проверяем конфигурацию nginx и в случае успеха перезапускаем сервер

Чрезмерная забота

Стараясь окружить пользователя заботой, можно зайти далеко. Так далеко, что он вовсе не сможет работать с функциональностью. И первая часть нашей истории как раз об этом.
Разрабатывая модуль, мы хотели избавить клиента от долгой подготовки к выпуску сертификата. Для этого ввели два ограничения: разрешили заказывать SSL только на зарегистрированные в панели веб-домены и только на те псевдонимы веб-домена, о которых знает панель.
Оба ограничения казались логичными. Первое не давало заказывать сертификаты на несуществующие домены и плодить «мёртвые» сущности — сертификаты, которые не будут выпущены, ведь положить токены проверки некуда. Второе тоже избавляло от ненужных сущностей, а ещё не давало заказывать сертификаты на «*.»-псевдонимы — в то время LE такие сертификаты просто-напросто не поддерживал.
Все было хорошо до тех пор, пока однажды в LE не появилась фича проверки домена через DNS-записи и возможность заказа сертификата на почтовый домен. Тогда при заказе на почтовый домен мы решили добавлять к псевдонимам следующие: «mail», «pop», «smtp» — ведь чаще всего именно на них подключаются сертификаты. В итоге вышло нехорошо: нашлись пользователи, которые изначально настраивали свои почтовые сервера на совершенно другие псевдонимы. Из-за наших ограничений при заказе они не могли добавить нужные имена.
К счастью, мы быстро осознали и исправили ошибку, разрешив пользователям указывать нужные данные при заказе сертификата. Все-таки иногда заботы бывает слишком много :).

5: Автоматическое обновление сертификата

Сертификаты Let’s Encrypt действительны в течение 90 дней, но во избежание ошибок их рекомендуется обновлять каждые 60 дней. На момент написания статьи клиент не оборудован функцией автоматического обновления сертификатов. Этот процесс можно выполнить вручную при помощи опции Let’s Encrypt renew.

Чтобы запустить обновление для всех доменов, запустите:

Поскольку текущий сертификат был создан только что, у команды нет необходимости обновлять его, она просто сообщит, сколько дней осталось до истечения срока действия сертификата:

Примечание: Если вы создали сертификат для нескольких доменов, в выводе команды будет указан только базовый домен, но обновление будет выполнено для всех доменов.

Надёжный способ обеспечить своевременное обновление сертификата – это демон cron.

Команда renewal будет отслеживать срок действия сертификата и обновлять его за 30 дней до истечения этого срока. Настройте cron запускать команду раз в неделю. Таким образом, в случае сбоя cron у вас будет в запасе 30 дней, чтобы снова попытаться обновить сертификат.

Отредактируйте crontab:

Добавьте следующие строки:

Сохраните и закройте файл.

Теперь cron будет запускать команду renew каждый понедельник в 2:30 ночи, а вывод команды будет помещён в лог /var/log/le-renewal.log.

Примечание: Больше информации о работе cron можно получить в статье «Автоматизация задач с помощью cron».

Let’s Encrypt и ACME клиенты для Windows

Наличие TLS/SSL сертификата у сайта позволяет защитить данные пользователей, передаваемые по сети от атак человек-посередине (man-in-the-middle) и гарантировать целостность переданных данных. Некоммерческий центр сертификации Let’s Encrypt позволяет в автоматическом режиме через API выпускать бесплатные криптографические TLS сертификаты X.509 для шифрования (HTTPS) . Выдаются только сертификаты для валидации доменов (domain validation), со сроком действия 90 дней (есть ограничение – 50 сертификатов для одного домена в неделю). Но вы можете автоматически перевыпускать SSL сертификат для своего сайта по расписанию.

API интерфейс, позволяющий автоматически выпускать сертификаты называется Automated Certificate Management Environment (ACME) API. Для Windows систем на данный момент имеется 3 самых популярных реализации клиента ACME API:

  • Утилита Windows ACME Simple (WACS) – утилита командной строки для интерактивного выпуска сертификата и привязки его к определенному сайту на вашем веб сервере IIS;
  • Модуль Powershell ACMESharp – библиотека Powershell с множеством команд для взаимодействия через ACME API с серверами Let’s Encrypt;
  • Certify – графический менеджер SSL сертификатов для Windows, позволяет интерактивно управления сертификатами через ACME API.

Wildcard

С марта 2018 года появилась возможность получить бесплатный сертификат на все поддомены, например, mail.dmosk.ru, test.dmosk.ru, admin.dmosk.ru (*.dmosk.ru).

Особенности получения Wildcard от Let’s Encrypt:

  1. Подтвердить право использования доменом можно только с помощью DNS — таким образом, затрудняется процесс автоматического продления. Нужно использовать плагины, которые позволяют автоматически создавать нужную запись на DNS, но они доступны далеко не для всех поставщиков услуг DNS. В противном случае, обновлять Wildcard нужно вручную.
    Также, некоторые панели управления хостингом, например ISP Manager с версии 5 могут управлять процессом получения Wildcard от Let’s Encrypt с возможностью автоматического продления (но необходимо, чтобы домен обслуживался на данном хостинге).
  2. Время действия сертификата также ограничена 3 месяцами.

Certbot

Необходимо, чтобы версия утилиты certbot была 0.22.0 и выше. Проверить текущую версию можно командой:

certbot —version

… если версия ниже, обновляем ее командами:

а) для CentOS / Red Hat:

yum update certbot

б) для Ubuntu / Debian: 

apt-get install —only-upgrade certbot

Процесс получения

Процесс очень похож на процесс получения сертификата с подтверждением домена в DNS.

Вводим команду:

* обратим внимание на 2 детали: 1) мы добавили опцию server, чтобы указать, на каком сервере Let’s Encrypt должна проходить проверка DNS; 2) мы получаем сертификат как для *.dmosk.ru, так и самого dmosk.ru, так как первое не включает второго. ..

система попросит создать TXT-запись в DNS, который обслуживает наш домен:

… система попросит создать TXT-запись в DNS, который обслуживает наш домен:

— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — —
Please deploy a DNS TXT record under the name
_acme-challenge.dmosk.ru with the following value:
DN8ovKFJ0leLQV9ofZ81mYKxojwIaed5g6f0bXZCYiI
Before continuing, verify the record is deployed.
— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — —

* в данном примере система попросила создать TXT-запись _acme-challenge.dmosk.ru со значением DN8ovKFJ0leLQV9ofZ81mYKxojwIaed5g6f0bXZCYiI.

Заходим в панель управления DNS и создаем нужную запись. Если у нас свой сервер DNS, например, bind, то строка будет такой:

; TXT
_acme-challenge IN      TXT     DN8ovKFJ0leLQV9ofZ81mYKxojwIaed5g6f0bXZCYiI

Не торопимся нажимать Enter — после настройки DNS нужно немного времени (пару минут), чтобы настройка применилась. Проверить появление записи можно командой с рабочего компьютера:

nslookup -type=txt _acme-challenge.dmosk.ru 8.8.8.8

Как только видим, что настройки применились, нажимаем Enter — если это наш первый запрос Wildcard для данного домена, то система нас попросит создать еще одну запись — повторяем процедуру, создав в DNS вторую запись TXT.

Если все сделали правильно, то увидим:

IMPORTANT NOTES:
 — Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/dmosk.ru/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/dmosk.ru/privkey.pem
   Your cert will expire on 2019-09-05. To obtain a new or tweaked
   version of this certificate in the future, simply run certbot
   again. To non-interactively renew *all* of your certificates, run
   «certbot renew»
 — If you like Certbot, please consider supporting our work by:
   Donating to ISRG / Let’s Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

… сертификат получен.

4: Автоматическое обновление

Сертификаты Let’s Encrypt действительны в течение 90 дней, но обновление рекомендуется выполнять заранее (например, через 60 дней использования сертификата). Клиент Let’s Encrypt предоставляет команду renew, которая проверяет текущий сертификат и обновляет его, если до даты его истечения остаётся меньше 30 дней.

Чтобы настроить обновление для всех существующих доменов, запустите:

Поскольку сертификат был получен только что, команда не станет обновлять его. Она просто сообщит, что данный сертификат пока что не нуждается в обновлении.

Обратите внимание: если вы создали один сертификат для нескольких доменов, в выводе команды будет указан только базовый домен, однако обновление будет действительно для всех доменов и поддоменов. Чтобы обеспечить своевременное обновление сертификата, настройте демон cron для автоматического запуска команды renew раз в неделю или каждый день

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

Отредактируйте crontab и создайте новую запись для команды renew. Чтобы отредактировать crontab пользователя root, введите:

Команда предложит выбрать редактор:

Чтобы принять редактор по умолчанию (nano), нажмите Enter.

Добавьте в конец таблицы следующую запись:

Сохраните и закройте файл. Это создаст новый процесс cron, который будет выполнять команду letsencrypt-auto renew каждый понедельник в 2.3о ночи. Вывод этой команды будет помещён в /var/log/le-renewal.log.

Примечание: Больше информации о cron можно найти в руководстве «Автоматизация задач с помощью Cron».

Условия получения бесплатного сертификата от Let’s Encrypt

Прежде чем начать, необходимо знать о некоторых нюансах получения сертификата Let’s Encrypt:

  • При запросе выполняется проверка домена. Для этого необходимо:
    1. либо создать TXT-запись в DNS.
    2. либо поднять веб-сервер, далее в его корне создается каталог .well-known, а в нем файл с произвольным названием. После корневой центр отправляет запрос серверу на загрузку данного файла и, в случае успеха, выдает сертификаты для указанного доменного имени.
  • SSL-сертификат выдается на 90 дней, поэтому необходимо по расписанию запускать команду на автоматическое продление ключа. Когда проходит 60 дней после начала использования нового сертификата, центр Let’s Encrypt может выдать новый.
  • Если выполнять запрос для домена 3 уровня и выше, он должен пройти DNS проверку на всех уровнях. Например, домен layer3.layer2.com должен отвечать на запросы как для layer3.layer2.com, так и для layer2.com.

Общая информация об SSL-сертификации

Сердцем шифрования является ключ шифрования. Представьте на минуту, что у вас есть реально большой замок, способный выдержать выстрел из винтовки 50 калибра. Но это не поможет, если у какого-нибудь злодея окажется ключ.

Цифровая аналогия — это криптографическая стойкость сертификата, используемого для шифрования трафика с сайта. По аналогии с замком и винтовкой, если у злодея появляется приватный ключ, с помощью которого был сгенерирован SSL-сертификат, криптографическая стойкость уже не имеет никакого значения.

Существует достаточно центров сертификации (CAs), предоставляющих SSL-сертификаты, и у каждого из них есть своя «Система Управления Ключами» (KMS). Такие центры обращаются к производителям операционных систем, таким как Microsoft, Apple и Google, чтобы поместить свои коренные сертификаты в список доверенных сертификатов их ОС.

SSL-сертификат сайта tproger.ru выдан компанией CloudFlare. Если её система управления ключами будет скомпрометирована, то все её сертификаты нужно будет перевыпустить. Однако, если такой атаке подвергнется любой другой центр сертификации, то на сайте tproger.ru это никак не отразится.

Чем больше сайтов получат защиту от Let’s Encrypt, тем больше становится потенциальная угроза. Ведь в случае атаки на их системы будет страдать всё больше и больше сайтов. Сейчас Let’s Encrypt выбирают по принципу «сделал и забыл»

Если сертификат будет отозван и никто не обратит на это внимание, то трафик сайта начнёт стремительно падать. Кстати, именно из-за истёкшего сертификата, на который никто не обращал внимание, в Equifax (американском бюро кредитной истории) в течение нескольких месяцев не знали, что они были взломаны

«Сделал и забыл» — возможно, не лучшая идея в кибер-безопасности.

Ссылка на основную публикацию