Плановая смена —

Плановая смена — Сертификаты
Содержание
  1. Описание ролей ansible
  2. Почему лучше рассчитывать на sni?
  3. 3: настройка приложения
  4. Caveat emptor
  5. Webroot плагин
  6. Автоматизация продления сертификатов
  7. Автоматизация: версия 3
  8. Вот и всё
  9. Если нужно добавить поддомен или домен в сертификат
  10. Если нужно получить сертификат для домена без сайта…
  11. Запрос сертификата exchange 2021
  12. Исходная конфигурация
  13. Как это работает
  14. Мастер выпуска сертификатов
  15. Настройка nginx
  16. Настройка окружения
  17. Обновление сертификатов
  18. Обновление уже созданного сертификата
  19. Ограничения
  20. Подготовим nginx к получению сертификатов
  21. Подготовка
  22. Подпись запроса руководителем
  23. Получаем сертификаты
  24. Получение сертификата
  25. Получение сертификата по карточке доступа к «мастеру выпуска сертификатов» | такском
  26. Проверим полученный сертификат
  27. Продление сертификатов
  28. Процесс по шагам
  29. Регистрация в let’s encrypt
  30. Смена сертификатов серверов «континент tls» для системы «электронный бюджет»
  31. Удостоверяющий центр
  32. Установка в jessie
  33. Установка и настройка nginx
  34. В заключение
  35. Выводы

Описание ролей ansible

Репозиторий с ролями доступны по ссылке.

В репозитории находится 4 роли:

Перейдем к практике:

Почему лучше рассчитывать на sni?

  1. Это просто. Вам не нужно постоянно держать в голове факты о выданных сертификатах. Для какого домена сертификат был выдан первым. К какому сертификату нужно добавлять еще домены. И так далее… Ни о чем таком со SNI не нужно думать.

  2. Секреты остаются секретами. Если у вас для всех доменов один сертификат, то любой сможет очень легко увидеть весь список, независимо от вашего желания. Если же для каждого сайта свой сертификат, то такой проблемы нет.

Например, так можно посмотреть домены в сертификате Тематических Медиа:

3: настройка приложения

Настройка приложения для поддержки SSL выходит за рамки данного мануала, так как у каждого приложения разные требования и параметры конфигурации.

Caveat emptor

Всё знаете про SNI? Читайте сразу про установку.

Webroot плагин

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

Одним из главных преимуществ является то, что нет необходимости останавливать веб сервер. Вы также можете получить сертификат для множества доменов за один раз (так называемые SAN сертификаты). Ниже приведу пример необходимой для генерации сертификатов команды:

Автоматизация продления сертификатов

Решать проблему мы будем с помощью crontab, но сначала советую выполнить следующую команду

Автоматизация: версия 3

Казалось бы, всё, отмучались, всё работает, как часы, в автоматическом режиме сертификаты перевыпускаются и делаются доступными для требующего их ПО. Но… 30-го сентября истёк срок действия сертификата, который выступал к качестве корневого для всей цепочки (ну, не совсем корневого, им был соподписан (cross-signed) корневой сертификат Let’s Encrypt). И да, мне опять пришло письмо – 14-го мая.

Вот и всё

Если вам близки по духу tee и sed, то есть гораздо более короткая инструкция по настройке связки Let’s Encrypt и nginx, при условии корректно настроенного hostname. Только копируй команды и вставляй.

Если нужно добавить поддомен или домен в сертификат

Если вы вдруг забыли указать поддомен www, или вам нужно добавить другой домен или поддомен в сертификат (которых может быть до 100 в одном сертификате), то это легко сделать после получения сертификата. Просто запустите команду еще раз, добавив требуемое имя:

Если нужно получить сертификат для домена без сайта…

Типичный пример — сертификат для выделенных под SMTP или IMAP серверов, на которых вообще нет каких-то сайтов. Либо используйте универсальный переадресатор что выше, либо…

Запрос сертификата exchange 2021

Дальше переходим в центр администрирования Exchange 2021 и идем к сертификатам, нажимаем на «плюсик» и создаем запрос на сертификат. Все просто, но на всякий случай прокомментирую.

Задаем понятное имя запроса:

Групповой сертификат не нужен, пропускаем:

Сохраняем запрос на любом сервере. Если сервер у вас один, то и выбор очевиден.

Дальше идет достаточно ответственный момент и лучше бы все сделать правильно с первого раза. Если за первый раз не получится, ничего страшного, просто пройдете весь путь снова, за одно и руку набьете. Вообще Exchange достаточно умный и практически всегда сам правильно выставляет все необходимые ему имена. Однако если у вас несколько серверов, то их внутренние имена придется ввести вручную, что я и сделал.

Проверяем сводную информацию:

Если вы дошли до этого момента, то возня с запросом практически закончилась. На этом этапе вводим данные организации. Можно ввести что угодно, но пусть лучше там будет осмысленная информация, если вы делаете сертификат для своего работодателя.

Исходная конфигурация

Изначально у нас имеются:

На всех серверах установлена Ubuntu 16.04.

Как это работает

Полное описание процесса доступно по

Важно лишь знать, что для подтверждения владения доменом и успешной генерации сертификата нужно будет иметь доступ к записям DNS или к серверу куда ссылается A-запись, что вполне логично.

Смысл программного набора Automated Certificate Management Environment (ACME) (написан на Python) в том, чтобы автоматизировать генерацию и установку сертификата в Linux-окружении.

Существует неофициальный Windows-клиент с открытыми исходными кодами, который может генерировать и устанавливать сертификаты на Windows IIS и Amazon Web Services, но у нас была задача получить ключи и установить их вручную. Предлагаю любому желающему написать статью по работе с ним.

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


     Настоящим я выражаю согласие на обработку своих персональных данных компанией
ООО «Такском», включая сбор, запись, накопление, хранение, уточнение (обновление,
изменение) извлечение, использование, передачу (распространение, предоставление,
доступ), обезличивание, уничтожение).
Персональные данные, на обработку которых
дается согласие в целях исполнения договора, предусматривающего оказание услуг
аккредитованного удостоверяющего центра в соответствии с федеральным законом
от 06.04.2008 №63-ФЗ «Об электронной подписи» (далее ФЗ «Об электронной подписи»)
и федеральным законом от 27.07.2006 №152 «О персональных данных» для изготовления
квалифицированных сертификатов: фамилия, имя, отчество, ИНН, СНИЛС, место работы
(организация), подразделение, должность, адрес места жительства, адрес электронной
почты, пол, абонентский номер (телефона), паспортные данные (серия и номер,
код подразделения, место и дата рождения, дата выдачи паспорта, адрес регистрации).
Соглашаюсь с указанием своих персональных данных согласно приказу Минкомсвязи
РФ от 05.10.2021 № 250 в реестре выданных ООО «Такском» квалифицированных
сертификатов, при этом признаю, что в соответствии с п. 3 ст. 15 ФЗ «Об электронной
подписи» ООО «Такском» обязан обеспечить любому лицу безвозмездный доступ к реестру
квалифицированных сертификатов ООО «Такском».
Соглашаюсь с передачей своих
персональных данных в Единую систему идентификации и аутентификации в целях
обеспечения требования ч. 5 ст. 18 ФЗ «Об электронной подписи».

Настройка nginx

Далее обновим конфигурацию виртуального сервера:

Настройка окружения

Как и в статье Алексея, мне пришлось немного поднастроить свой центр сертификации и все началось с установки компонента «Служба регистрации в центре сертификации через Интернет». Если кто-то не помнит как добавлять необходимые компоненты определенной роли в Windows Server 2008 R2, то это делается вот так:

Для поддержки сертификатом дополнительных имен узлов нам действительно нужно отдельно включать поддержку SAN45 в нашем ЦС. Алексей не забыл упомянуть и это в своей статье6. Выполняем в командной строке с правами админа команду:

certutil -setreg policyEditFlags EDITF_ATTRIBUTESUBJECTALTNAME2

Перезапускаем службу:

net stop certsvcnet start certsvc

Дальше нас ждет процесс генерации запроса на получение сертификата в локальном центре сертификации.

Обновление сертификатов

Сертификаты мы получили, осталось настроить копирование их на front сервер/сервера. Для этого мы настроим rsyncd на сервере letsencrypt с правами на чтение для ограниченого списка ip адресов:

Обновление уже созданного сертификата

Выполните следующую последовательность команд для обновления и переноса файлов сертификата в каталог TrueConf Server:

  1. Остановите службу веб-сервера:
  2. Обновите сертификат:
  3. Выберите Spin up a temporary webserver (standalone) (введите 1).
  4. Выберите Renew & replace the cert (limit ~5 per 7 days) (введите 2).
  5. Выполните шаги 5 и 6 раздела по получению сертификата.
  6. Запустите службу веб-сервера:

Ограничения

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

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

В общем случае для получения сертификата необходимо во всех блоках server добавить следующий блок до других блоков location:

location /.well-known {
    root /var/www/html;
}

Понятно, что вписывать для каждого сайта такой блок явно — это моветон, потому создадим файл /etc/nginx/acme с содержанием блока выше.

# cat /etc/nginx/acme 
location /.well-known {
    root /var/www/html;
}

Затем для каждого домена и поддомена, для которых нужно получить сертификаты, в блоке server перед всеми блоками location укажем:

include acme;

Хосты-редиректоры (например, с голого домена на www) можно пропустить. ACME сервер обязан учитывать стандартную переадресацию. Подробней об этом ниже.

Перезагрузим nginx и проверим что наш тестовый файл виден:

Подготовка

Чтобы успешно сгенерировать и использовать сертификат Let’s Encrypt вам необходимо проделать следующие подготовительные действия:

  1. Установить TrueConf Server для Linux.
  2. Зарегистрировать доменное имя с публичным (белым) IP-адресом.
  3. Открыть порт 80 на сервере, где будет происходить получение сертификата.

В качестве примера использовался сервер с развёрнутой ОС Debian 10. При активации ключа регистрации в панели управления сервера TrueConf в качестве имени сервера было использовано ранее зарегистрированное доменное имя.

Подпись запроса руководителем

Руководителю необходимо войти по сертификату в ФЗС, выбрать вкладу «Запросы на согласование», кликнуть на нужный запрос.

На следующей странице нажимаем на иконку «Согласовать».

На следующей странице внизу (пунтк 2) ставим галку напротив «Комплект на получение сертификата согласован» и нажимаем «СОГЛАСОВАТЬ И ПОДПИСАТЬ ЭП».

На следующей странице нажимаем «ПОДПИСАТЬ ЭП».

Далее подтверждаем доступ — выбираем «ДА».

Следующий шаг.

В итоге появляется такая страница.

Несмотря что пишут «личный визит в УЦ ФК не требуется», лучше позвонить в ваш УЦ и уточнить. Например, наш местный УЦ требует приносить новые формы согласий и доверенностей. Если поменяли паспорт, то визита в УЦ не избежать.

Получаем сертификаты

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

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

После получения письма счастья о готовности сертификата, можно заходить в личный кабинет ФЗС для его получения.

Получение сертификата по карточке доступа к «мастеру выпуска сертификатов» | такском

Если у вас отсутствует карточка доступа к «Мастеру выпуска сертификатов», необходимо ее получить.

Создайте запрос на сертификат и распечатайте заявление в «Мастере выпуска сертификатов»

  1. Нажмите кнопку «по карточке доступа».
    Выберите способ получения сертификата
  2. На открывшейся странице введите логин и пароль (Внимание! Раскладка клавиатуры должна быть английская, а Caps Lock выключен) и нажмите «Далее».
    Ввод параметров доступа
  3. Проверьте данные:
    • Если данные указаны верно, нажмите кнопку «Верны».
    • Если данные указаны неверно, нажмите кнопку «Неверны» и следуйте рекомендациям, указанным на экране.

    Проверка данных

  4. Ввести номер СНИЛС и, при необходимости, ИНН физического лица, указанного в сертификате, и нажать «Далее» Плановая смена —
  5. Введите паспортные данные физического лица, указанного в сертификате, и нажмите «Продолжить».
    Паспортные данные пользователя УЦ

Для получения сертификата ключа подписи, необходимо:

  • Проверить, готово ли рабочее место к формированию ключевой пары и получению сертификата.
  • Сформировать ключевую пару и распечатайте заявление в «Мастере выпуска сертификатов».
  • Владельцу сертификата предоставить комплект заполненных документов в офис после оплаты счета.
  • Получить сертификат на рабочем месте, где формировали ключевую пару.

Как проверить готовность рабочего места к генерации ключевой пары:

  1. Удостоверьтесь, что «КриптоПро CSP» установлена на рабочем месте.
  2. Если вы будете использовать сертифицированный носитель для хранения ключа электронной подписи (токен), необходимо проверить его настройки. При первичной настройке токена потребуется загрузить и установить драйверы (в зависимости от марки):
  3. Используйте один из браузеров:
    • MS Internet Explorer версии 7.0 и выше,
    • Chrome 7.0.5177.41 и выше,
    • Opera 10.5 и выше,
    • Mozilla Firefox 3.6 и выше.

Как сформировать ключевую пару и распечатать заявление:

  1. Откройте «Мастер выпуска сертификатов» по адресу https://ce.taxcom.ru;
  2. При переходе на страницу «Мастера выпуска сертификатов» может возникнуть предупреждение об установке корневого сертификата. Согласитесь с установкой, нажав на кнопку «Да».
    Предупреждение о безопасности
  3. Если вы используете браузер, отличный от Internet Explorer или Mozilla Firefox, то при первом запуске «Мастера выпуска сертификатов» появится сообщение«Дополнение не установлено».
    Выбор способа получения сертификата предложение установить дополнения для браузера
  1. Проверьте данные:
  1. Введите паспортные данные физического лица, указанного в сертификате, и нажмите «Продолжить».
    Паспортные данные пользователя УЦ

Примечание. В качестве ключевого носителя вы можете выбрать реестр вашего компьютера или съемный носитель (электронный идентификатор/токен, флеш-накопитель). При использовании съемного носителя убедитесь, что носитель подключен к компьютеру.
Выбор хранилища

  1. Если в качестве хранилища сертификата был выбран электронный идентификатор/токен, откроется окно с предложением ввести PIN-код.

    Стандартные Pin-коды.

    1. Далее установите пароль на создаваемый сертификат.

      Пароль можно не устанавливать, в таком случае при работе с сертификатом пароль запрашиваться не будет.

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

    2. Далее появится подсказка про «Биологический датчик случайных чисел». После ознакомления с подсказкой нажмите кнопку «Далее».
      Создание запроса на сертификат
    3. В процессе работы датчика нажимайте произвольные клавиши на клавиатуре (кроме клавиши Esc) или двигать курсором мыши в поле окна датчика.
      Создание запроса на сертификат: нажимайте клавиши
    4. Распечатайте заявление на выдачу сертификата, нажав на ссылку «Просмотреть и распечатать заявление».
      Получение нового сертификата
    5. Распечатайте и проверьте заявление на выдачу сертификата, нажав на ссылку «Открыть заявление».

    Что делать после формирования ключевой пары сертификата

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

    Важно!Пожалуйста, убедитесь, что все документы заполнены корректно и сведения, которые вы внесли, верны.

    Как получить сертификат после предоставления документов в офис ООО «Такском»

    1. На рабочем месте, где Вы сформировали ключевую пару, откройте «Мастер выпуска сертификатов» по адресу https://ce.taxcom.ru.
    2. Нажмите «по карточке доступа». На открывшейся странице необходимо:
    1. Выберите незавершенную сессию и нажмите «Далее».
    2. Далее откроется страница для создания резервной копии ключа.
      Выбор незавершенной сессии
    3. Далее откроется страница для создания резервной копии ключа.

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

    Чтобы создать резервную копию:

      • вставьте ключевой носитель, на который вы хотите скопировать сертификат (отличный от того, который вы использовали для получения сертификата);
      • нажмите кнопку «Создать» и далее действовать в соответствии с подсказками программы.

      Если вы не планируете создавать резервную копию, нажмите «Далее».
      Создание резервной копии ключа

      1. На завершающем этапе полученный сертификат будет автоматически установлен на ваш компьютер, и вы увидите окно с надписью «Готово!».
        После этого сертификат будет установлен на вашем рабочем месте и вы сможете успешно отправлять отчетность после регистрации сертификата в контролирующих органах.
        Готово

      Сроки регистрации сертификата в контролирующих органах вы можете посмотреть здесь

      Как посмотреть информацию о вашем новом сертификате, вы можете узнать здесь

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

      Убедимся что полученный сертификат — именно тот, что нам нужен:

      Продление сертификатов

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

      Но нет, не спешите искать платежные средства! Как и было обещано в начале статьи, с обновлением сертификатов проблем нет.

      Процесс по шагам

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

      Регистрация в let’s encrypt

      Регистрацию нужно сделать только один раз:

      Смена сертификатов серверов «континент tls» для системы «электронный бюджет»

      Федеральное казначейство информирует об истечении сроков действия сертификатов серверов «Континент TLS» (далее – Сертификаты «Континент TLS»), используемых для подключения к сервисам:

      1)    lk.budget.gov.ru – государственная интегрированная информационная система управления общественными финансами «Электронный бюджет» (далее – ГИИС «Электронный бюджет»), истечение срока сертификата: 14.07.2021;

      2)    lk.buh2021.budget.gov.ru – подсистема управления оплатой труда, подсистема управления нефинансовыми активами, модуль бюджетного учета подсистемы учета и отчетности ГИИС «Электронный бюджет», истечение срока сертификата: 17.07.2021.

      В связи с изложенным, необходимо уведомить участников бюджетного процесса Вашего Управления, имеющих доступ к указанным сервисам, о планируемом обновлении Сертификатов «Континент TLS» 12.07.2021 в 23:00 по московскому времени и о необходимости внесения изменений в настройках программного обеспечения «Континент TLS Клиент» на автоматизированных рабочих местах пользователей. 

      Информация по настройке программного обеспечения «Континент TLS Клиент» и новые Сертификаты «Континент TLS VPN» размещены на официальном сайте Федерального казначейства в разделе «Электронный бюджет» по ссылке http://www.my-sertif.ru/gis/ehlektronnyj-byudzhet/.

      Дополнительно информируем, что при невыполнении указанных настроек вход пользователей в ГИИС «Электронный бюджет» будет невозможен.

      Удостоверяющий центр

      Федеральным казначейством введен в эксплуатацию Портал заявителя информационной системы «Удостоверяющий центр Федерального казначейства». Информация о получении сертификатов с использованием Портала заявителя размещена в «Онлайн сервис подачи документов для получения сертификатов».

      Федеральное казначейство в соответствии с частью 1 статьи 15 Федерального закона от 06.04.2021 № 63-ФЗ «Об электронной подписи» является аккредитованным удостоверяющим центром.

      Федеральное казначейство в соответствии с пунктом 5.18 (2) Положения о Федеральном казначействе, утвержденного постановлением Правительства Российской Федерации от 01.12.2004 № 703, осуществляет функции удостоверяющего центра для обеспечения участников электронного взаимодействия в установленной сфере деятельности сертификатами ключей проверки электронных подписей.

      Приказом Федерального казначейства от 16.03.2020 № 11н утвержден Порядок реализации Федеральным казначейством функций аккредитованного удостоверяющего центра и исполнения его обязанностей

      Федеральное казначейство осуществляет функции удостоверяющего центра в целях обеспечения квалифицированными сертификатами ключей проверки электронных подписей участников бюджетного процесса бюджетов бюджетной системы Российской Федерации (их обособленных подразделений), юридических лиц, не являющихся участниками бюджетного процесса (их обособленных подразделений), и крестьянских (фермерских) хозяйств, индивидуальных предпринимателей при казначейском сопровождении целевых средств и действующих от их имени представителей.

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

      Установка в jessie

      Если у вас еще в ходу актуальный на конец 2021 года Debian stable “jessie”, то всё лишь немного сложнее.

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

      Для начала установим на все хосты nginx из общей роли nginx-simple и раскидаем общие для всех хостов конфиги nginx (nginx.conf, параметры ssl, пути к сертификатам, etc).

      Для letsencrypt server’а в шаблоне …/site-available/default.conf папка .well_known будет находиться в /var/www/:

      {% if letsencrypt_server %}
        location /.well-known {
          root /var/www/;
        }

      Для сервера/серверов группы front, так как папка .well_known используется не только для получения сертификатов, но и для другого ПО, мы импортируем в конфиг example.confletsencrypt-proxy.conf и nginx будет искать папку локально на сервере front, используя дерективу try_file:

      {% if nginx_proxy_well_known %}
        try_files $uri $uri/ @letsencrypt;
      {% endif %}

      В заключение

      Мы постарались подробно описать весь процесс установки и настройки, а т.к. все описано в плейбуках ansible — статья получилась очень компактной. Как любят часто говорить — “чуть больше 100 строчек кода”. На вопросы, критику и замечания с удовольствием ответим в комментариях.

      Выводы

      Полная настройка заняла порядка 5 минут и была весьма приятной (думаю все любят когда всё работает быстро и с первого раза), поэтому я рекомендую вам опробовать данный подход.

      Про сертификаты:  плановая смена сертификата - СУФД
      Оцените статью
      Мой сертификат
      Добавить комментарий