Глава 4. Работа с сертификатами
Понимание сертификатов это нечто, чего избегал долгие годы в своей технологической карьере. Для множества граней ИТ вы никогда не будете иметь с ними. Это было для сетевых парней, а не для кого- то, имеющего дело с разработкой или поддержкой рабочих мест.
Времена изменились, и основательное понимание общих типов сертификатов быстро становится возможностью, которую любой в поддержке должен выполнять. Всё больше и больше безопасности начинает сосредоточиваться в сертификатах, а при экспоненциальном росте приложений, которые обслуживаются посредством Веб, понимание сертификатов, которые защищают такие службы является более важным, чем когда- либо.
Почти всякий, кто устанавливал некий веб- сайт имел дело с сертификатами SSL из общедоступного CA ( Certification Authority , Органа сертификации), но знаете ли вы, что вы можете быть собственным CA? Что вы можете выпускать сертификаты для машин в вашей сетевой среде прямо со своего собственного сервера CA? Следуя далее мы исследуем некоторые из возможностей Windows Server 2016, работающего в качестве сервера CAв вашей сети. Наша работа в данной главе охватит следующие темы:
- Настройка самого первого сервера Certification Authority в сетевой среде
- Построение Подчинённого сервера CA
- Создание шаблона сертификата для подготовки выпуска сертификатов машин вашим клиентам
- Публикация шаблона сертификата для возможности регистрации
- Применение MMC для запроса нового сертификата
- Применение веб- интерфейса для запроса нового сертификата
- Настройка автоматической регистрации для выпуска сертификатов всем подключённым к домену системам
- Обновление вашего корневого сертификата
Настройка первого сервера Сертификационной авторизации в сети
С учётом предыдущего практического опыта, или как это определено тем или иным образом, удивительно, что я крайне редко вижу Корневой CA отключённым на практике. На самом деле, практически никогда. А в некоторых имевшихся у меня случаях наличие отключённого Корня CA вызывало проблемы.
Просто для примера, при размещении инфраструктуры DirectAccess с возможностями одноразового пароля (OTP, one-time-password) в среде заказчика, было обнаружено, что чтобы заставить такие OTP работать правильно, отключённый Корень CA должен быть приведён назад в рабочее состояние. Это не было самым насущным интересом нашего варианта для создания PKI, и поэтому взамен мы реализовали вторую среду сертификата с автономным корнем и и двумя промежуточными чтобы поддерживать отключённым Корень CA для данной цели сертификатов OTP. Это вызвало большие задержки в нашем проекте, так как мы должны были построить три новых сервера, необходимых просто для получения публикации сертификатов правильным образом, что впоследствии привело к намного более сложной инфраструктуре сертификации.
Если предыдущее описание смутило вас, хорошо — так как это разновидность неаккуратной настройки. Если бы компания вместо этого работала с функционирующим сервером Корня CA в самом первом месте, никакая такая дополнительная работа не была бы нужна. Я не защищаю то, что Корпоративный Корень CA, который постоянно остаётся во включённом состоянии является наилучшим способом выдачи сертификатов, однако он вызывает наименьшее число проблем и существует множество компаний, которые работают в своих промышленных средах CA в точности таким образом.
Другое практическое наблюдение состоит в том, что большая часть компаний малого и среднего размера не выбирают подход с отключённым Корнем CA. На самом деле я обнаруживаю, что многие малые компании вынуждены совмещать серверы чтобы сберегать ресурсы и имеют свои CA роли установленными на серверы, которые также выполняют некоторые прочие задачи. Зачастую роль CA устанавливается в Контроллере домена.
Хотя на поверхностном уровне рассмотрения это кажется не лишённым смысла, так как службы Корпоративного CA настолько тесно интегрируются с AD, в действительности это плохая мысль. Microsoft рекомендует чтобы вы никогда не совмещали роль CA в Контроллере домена, поэтому удерживайтесь в стороне от такого сценария по мере возможности. Как уже было сказано, я наблюдал десятки компаний, которые в точности делали это и никогда не имели с этим проблем, поэтому я предполагаю, что это просто ваш выбор насколько близко вы хотите придерживаться Пути Microsoft .
Не забудьте ознакомиться со ссылками, приводимыми в конце данного рецепта, так как они снабдят вас информацией, которая будет полезна чтобы принять верное решение по поводу того какая настройка сервера сертификата наилучшим образом удовлетворяет вашей сетевой среде.
к содержанию ↑Подготовка
Я создал новый Windows Server 2016 с именем CA1 , причём он является участником домена, на котором мы будем включать нашу новую инфраструктуру сертификации.
Создание сертификата «Let’s Encrypt» на Windows
Криптографические сертификаты служат цифровым аналогом удостоверения сайта, что позволяет шифровать подключения с использованием протокола TLS и тем самым обеспечивать безопасное соединение между сервером и клиентом.
Существуют как платные, так и бесплатные центры сертификации. Одним из бесплатных центров является Let’s Encrypt, который выдаёт сертификаты сроком на 90 дней с возможностью продления в автоматическом режиме.
Для пользователей TrueConf Server наличие TLS сертификата необходимо для участия в конференциях через WebRTC-приложение в браузерах и синхронизации TrueConf Server с Active Directory.
Шаг 1: Подготовка
Предварительно необходимо остановить все службы TrueConf Server, а также все процессы, которые могут занимать порты 80 и 443, например, Apache HTTP Server.
Для создания TLS сертификата на Windows скачайте программу ACME Simple (WACS). Далее следуйте инструкции:
- Распакуйте скачанный архив в папку C:wacs .
- В этой же папке создайте каталог crt.
- В брандмауэре Windows откройте Дополнительные параметры → Правила для входящих подключений → Создать правило → Для порта, в поле Определённые локальные порты впишите через запятую порты 80 и 443 и нажмите Далее. Затем выберите пункт Разрешить подключение, снова нажмите Далее, укажите для каких профилей будет применяться правило (по умолчанию для всех) и после нажатия кнопки Далее сохраните правило под любым именем.
Шаг 2: Создание сертификата
Откройте командную строку (cmd) от имени администратора и запустите утилиту:
C : wacs wacs . exe
- Начните создавать сертификат с ручным указанием параметров, для чего выберите:
- Create new certificate (full options);
- Manual input.
- Укажите ваше доменное имя и два раза нажмите Enter для подтверждения.
- При желании вы можете создать отдельные сертификаты для поддоменов или хостов. В нашем примере выберем Single certificate.
- Затем последовательно выберите:
- [http] Serve verification files from memory;
- RSA key;
- PEM encoded files (Apache, nginx, etc.).
- Укажите папку для сохранения сертификатов C:wacscrt .
- Вам будет предложено установить пароль для приватного ключа. Выберите None;
- После этого выберите:
- No (additional) store steps;
- No (additional) installation steps.
- Укажите адрес электронной почты для уведомлений об ошибках.
- На дополнительные вопросы отвечайте следующим образом:
- на вопрос Open in default application? введите no ;
- на вопрос Do you agree with terms? введите yes .
После этого при удачном создании сертификата вы увидите надпись Authorization result: valid. На вопрос Do you want to specify the user the task will run as? введите no .
Если для указанного доменного имени ранее уже генерировался сертификат, вы увидите соответствующее сообщение в строке Existing renewal с указанием даты окончания действия. Вы можете создать его заново, указав yes в ответ на вопрос Overwrite settings?.
В папке C:wacscrt сгенерируются 3 файла:
- имя_домена-crt.pem — сам сертификат;
- имя_домена-key.key — файл ключа;
- имя_домена-chain.pem — цепочка доверия, включает корневой и промежуточный сертификаты Let’s Encrypt.
Теперь вы можете использовать их в TrueConf Server, как показано в нашей статье.
к содержанию ↑Как установить SSL-сертификат бесплатно на свой сайт?
SSL сертификат бесплатно – установка и настройка HTTPS защищенного соединения
Посещая сайты, в строке ввода адреса можно заметить специальный значок в виде замка. Он может быть зеленого, золотого или серого оттенка. Наличие замка и зеленой строке указывают на наличие на сайте SSL-сертификат.
Это специальный протокол, направленный на защиту персональных данных пользователей от мошенников. Указанный сертификат нужен всем. Он помогает владельцу сайта «не упасть лицом в грязь», а самому пользователю избежать мошеннических операций с его персональными данными.
SSL-сертификат – ваша защита! Он необходим как владельцу сайта, так и самим пользователям. Наличие в адресной строке заветного замка указывает на тот факт, что ресурс полностью безопасен и вся информация, вводимая на его страницах, не попадет к третьим лицам.
к содержанию ↑Знакомимся с центром сертификации Let’s Encrypt
SSL-сертификат скачивается на бесплатных основаниях, в специальных центрах. Самым популярным вариантом выступает площадка Let’s Encrypt. Она занимает лидирующую позицию, на текущий год компании удалось выпустить порядка 40% сертификатов.
В центре можно взять бесплатно SSL-сертификат и воспользоваться ⚙️ всеми его преимуществами. Такой вариант идеально подойдет для владельцев маленьких сайтами, где пользователи могут оставлять свои персональные данные.
к содержанию ↑Ключевые преимущества сертификата SSL
Центр Let’s Encrypt выдает SSL-сертификат бесплатно, без каких-либо обязательных выплат. Ресурс не имеет скрытых расходов. Деньги не будут списываться за скачивание или продление.
Все что требуется пользователю – посетить ресурс, выбрать требуемый сертификат и получить его бесплатно. Заказать бесплатный SSL сертификат можно по ссылке.
Ключевыми преимуществами SSL-сертификат, выступают:
- Надежное шифрование. Бесплатный сертификат работает по тому же принципу, что и платный. Не нужно переживать за сохранность информации.
- Удобное управление. На сайте Let’s Encrypt для всех желающий представлена бесплатная функция автоматической настройки. Она способна скачивать, устанавливать и продлевать сертификаты. Для ее использования необходимо установить клиент на сервер и открыть доступ к изменению конфигурации. Если есть страх, что подобное вмешательство может сбить основные настройки, занимайтесь вопросом скачивания и обновления самостоятельно. Ограничений нет.
к содержанию ↑В целом, преимущества сертификатов способны варьироваться, с учетом выбранного типа. В центре Let’s Encrypt представлены варианты для малого, среднего и крупного бизнеса, а также сайтов с большим количеством подписчиков.
Стоит ли пользоваться сертификацией на бесплатных основаниях?
Бесплатные сертификаты удобные и безопасные. Но в чем заключается основная выгода? Рассмотрим этот вопрос на примере сертификатов, предоставляемых центром Let’s Encrypt:
- сертификаты Let’s Encrypt удобны только для небольших проектов. Их зачастую используют для личного сайта, блога, ресурса с приемом платежей или промостраниц, где необходимо вводить контактные данные.
- протоколы имеют минимальный функционал, а совместимость находится на низком диапазоне. Для установки сертификата SSL могут понадобится базовые знания в администрировании;
- установка защиты обязательна, вне зависимости от ее «цены». Бесплатные протоколы неплохо функционируют и надежно защищают информацию.
- бесплатные сертификаты характеризуются низкой совместимостью с телефонами и браузерами. Установка более сложная, а бесплатный период действия минимальный.
В целом, сертификация нужна. Она позволяет избежать непредвиденных ситуаций и открытого мошенничества.
к содержанию ↑Особенности установки HTTPS защищенного соединения
- заказ сертификата
- настройка в административной панели Timeweb
- настройка файла htaccess
Шаг 1 – заказ сертификата
В административной панели хостинга Timeweb необходимо выбрать бесплатный способ по переводу домена на https-протокол с использованием сервиса Lets Encrypt. Для этого следуем установленному алгоритму:
На указанный при оформлении заказа адрес электронной почты придет подтверждающее письмо. Оно оповестит клиента о том, что сертификат был успешно скачан и установлен. Далее необходимо переходит к процессу настройки.
Шаг 2 – настройка в административной панели
На данном этапе важно настроить переадресацию сайта на защищенное соединение HTTPS. Для этого следуйте алгоритму:
Важно! Заветный зеленый замочек, подтверждающий бесплатное соединение появится не сразу, а через время. Это необходимо учитывать!
Для переадресации, необходимо пройти дополнительную настройку в административной панели сайта:
- войти в меню с настройками
- выбрать «Общее»
- проверить форму «Адрес сайта»
- проверить форму «Адрес сайта WordPress»
- поменять в обеих формах протокол на HTTPS
к содержанию ↑Важно! Если переадресация была выполнена через административную панель хостинга, ничего в формах менять не нужно. В противном случае, получится циклическая переадресация.
Шаг 3 – настройка файла .htaccess
Для настройки указанного файла, в его самом низу необходимо добавить строчку: SetEnvIf X-HTTPS 1 HTTPS.
Важно! На хостинге Timeweb это не нужно. После настройки переадресации, зеленый замок появляется автоматически во всех браузерах, что исключает необходимость дополнительной настройки.
В случае с автоматической переадресацией, необходимо проверить доступность ресурса по новому протоколу. В дополнении ко всему, можно определить администратора сайта в новом SSL сертификате. Для этого необходимо отредактировать wp-config.php.
Важно! Все манипуляции по настройке обязательны. Переадресация выполняется быстро, а вот заветное слово «Надежный» можно увидеть только спустя месяц и более. Это нормальная практика. Придется немного подождать.
Установка бесплатного сертификата с последующей настройкой HTTPS соединения позволяет повысить защитный «барьер» сайта и сделать его безопасным как для самого владельца, так и для пользователя. Наличие дополнительной защиты позволит клиентам свободно оставлять контактную информацию без страха ее «воровства».
к содержанию ↑Нужен бесплатный SSL-сертификат? Легко
Если вам нужен SSL-сертификат, но вы не являетесь специалистом в веб-технологиях, то эта заметка для вас. Описан простой способ выпуска базового SSL-сертификата Let’s Encrypt в ручном режиме, на локальном компьютере с Windows, с помощью приложения Certbot. Этот способ позволяет получить файлы SSL-сертификата в папку на своём локальном компьютере, после чего можно установить сертификат на свой хостинг.
Потребность в SSL-сертификатах возникла у меня в связи с тем, что срок старых истёк, а создать новые оказалось невозможным из-за возникших ограничений на доменные зоны RU и РФ. Если у вас такая же проблема или вам просто надоело искать веб-сервис для выпуска SSL-сертификатов, то эта заметка вам поможет.
Поскольку я пока не знаю наилучшего пути, то ниже просто опишу ту последовательность действий, которую сам выполнил и которая позволила мне создать SSL-сертификаты для десяти своих доменов (в том числе в зонах RU и РФ), а значит и вам этот способ может помочь.
к содержанию ↑Создание SSL-сертификата на локальном компьютере
- Установил на свой локальный компьютер (с операционной системой Windows 11) программу Certbot.
Установочный файл Certbot взял с официального сайта здесь (см. ссылку на загрузку дистрибутива в п.3 на открывшейся по ссылке странице).
Работа с программой Certbot осуществляется через командную строку или PowerShell (я использовал PowerShell). На время выпуска сертификата, естественно, компьютер должен быть подключен к сети Интернет.
- Открыл PowerShell (х86) с правами администратора.
Для этого нажал на кнопку «Пуск» и набирая первые буквы названия PowerShell увидел нужный пункт в результатах поиска, затем правым щелчком мыши по названию найденной программы открыл контекстное меню и в нём выбрал пункт «запуск от имени администратора».
- В окне PowerShell с помощью команд cd перешёл в каталог Certbot (вводил как показано на скриншоте и нажимал в конце строки клавишу Enter):
- Вставил из буфера обмена команду для создания сертификата (можете скопировать её из этой строки):
certbot certonly —authenticator manual
Перед нажатием Enter окно PowerShell выглядело с этой командой так:
- Система предложила ввести свой email (я ввёл), согласился с условиями (нажимая клавишу Y), в следующий раз программа на этом шаге уже не просила вводить email, а сразу предлагала ввести имена доменов (я вводил сразу по два – второй с www, через запятую):
- Программа попросила создать файл проверки прав на домен. При этом показано какую строку символов и в файл с каким именем поместить, по какому адресу на веб-сервере этот файл положить:
С помощью Filezilla Client я создал нужные файлы по требуемому адресу, создав нужные директории. Выделенный текст из окна PowerShell можно копировать просто правым кликом, или привычным сочетанием клавиш Ctrl+C.
- Нажал клавишу Enter для создания сертификата, но только после того, как проверочные файлы на веб-сервере были созданы.
Система сообщила об успешном создании файлов сертификата, которые я нашёл на своём локальном компьютере, в папке:
Вот и всё, сертификаты готовы!
Для установки их на хостинг мне потребовались три файла из четырёх, из данной папки:
cert1.pem – сертификат
chain1.pem – промежуточный сертификат
privkey1.pem – приватный ключ
Эти файлы со своего компьютера не удаляйте, поскольку при следующем выпуске сертификатов (их приходится создавать заново каждые 90 дней) Certbot проверит их наличие и создаст рядом новые, со следующим порядковым номером. Для установки на хостинг нужно будет использовать, конечно, новые.
к содержанию ↑Ограничения
Через каждые 90 дней нужно перевыпускать сертификат заново.
Следующая