Инфраструктурные решения на основе «Альт Образование» в СПбГЭТУ «ЛЭТИ» (Иван Хахаев, OSEDUCONF-2021) — различия между версиями
Материал из 0x1.tv
StasFomin (обсуждение | вклад) |
StasFomin (обсуждение | вклад) |
||
(не показано 5 промежуточных версий этого же участника) | |||
;{{SpeakerInfo}}: {{Speaker|Иван Хахаев}} <blockquote> Обсуждается механизм обеспечения поддержки и обновления SSL-сертификатов от Let’s Encript для сервисов, входящих в состав дистрибутива «Альт Образование». Приводится пример скрипта, обеспечивающего автоматическое обновление таких SSL-сертификатов для web-сервера Apache2 в дистрибутивах АЛЬТ. </blockquote> {{VideoSection}} {{vimeoembed|541382333|800|450}} {{youtubelink|}} |G6M2_8WJ_cc}} {{SlidesSection}} [[File:Инфраструктурные решения на основе «Альт Образование» в СПбГЭТУ «ЛЭТИ» (Иван Хахаев, OSEDUCONF-2021).pdf|left|page=-|300px]] {{----}} == Thesis == В 2020 году на основе «АЛЬТ Образование» в СПбГЭТУ «ЛЭТИ» были развёрнуты два крупных сервиса — LMS Moodle<ref>https://vec.etu.ru</ref> и «облачное» хранилище NextCloud<ref>https://cloud.etu.ru</ref>. Сервисы развёртывались на виртуальных машинах (VM) на кластере из 5 серверов под управлением дистрибутива Proxmox VE 6.2. Характеристики VM с LMS Moodle: * ОС «АЛЬТ Образование» 9.1; * количество зарегистрированных пользователей — около 14000; * VM с дисковым пространством 4 Тб, RAM 64 Гб, 6 ядер 2,2 ГГц; * среднее количество пользователей в день — около 2000; * количество курсов — около 4300. Характеристики VM с NextCloud: * ОС «АЛЬТ Образование» 9.1; * VM с дисковым пространством 20 Тб, RAM 32 Гб, 4 ядра 2,2 ГГц; * квота на пользователя 10 Гбайт (рассчитано на 2000 пользователей — преподавателей и сотрудников). Оба сервиса используют стек LAMP. Одной из задач, решаемых при развёртывании указанных инфраструктурных решений, было обеспечение корректной работы https с подтверждением сертификата. Сертификаты, генерируемые при установке дистрибутива, не подтверждаются каким-либо центром сертификации, поэтому пользователи получают сообщение о вероятной угрозе безопасности. Популярным решением является использование SSL-сертификатов от Let’s Encrypt. Такое решение связано с бесплатным распространением, простотой получения и внедрения сертификатов, которые подтверждаются центром сертификации Let’s Encrypt . Однако на wiki сообщества АЛЬТ даётся решение по использованию SSL-сертификатов от Let’s Encrypt для веб-сервера NGINX, в то время как настройки web-сервера Apache2 в дистрибутивах АЛЬТ имеют нюансы, не позволяющие использовать информацию по настройке SSL-сертификатов от Let’s Encrypt для Apache2 из других дистрибутивов. Поскольку в настройках виртуального хоста по умолчанию для сервиса httpd2 в дистрибутивах «АЛЬТ Образование» настроены редиректы с http на https, подтверждение сервера (домена сайт), на котором расположен сайт, для обновление SSL становится проблематичным. Это связано с тем, что в процессе обновления сертификата необходимо проверить права на домен. Из-за ограничений безопасности в корпоративной сети СПбГЭТУ «ЛЭТИ» метод обновления SSL через DNS-запросы не подходит, т. к. дополнительные TXT-записи с ключами не прописываются. Поэтому проверка происходит через предоставление HTTP-ресурса с определённым URI. Для корректного подтверждения прав на домен агент Certbot проводит тест-запросы с соответствующими ключами через 80 порт по HTTP . В ситуациях, когда на виртуальном хосте настроены редиректы c HTTP на HTTPS, при обновлении сертификата возникает ошибка следующего вида: <pre> Domain: aaa.bbb.ru Type: unauthorized Detail: Invalid response from https://aaa.bbb.ru/.well-known/ acme-challenge/549OU8Q5XsKvzZ_I_QpLWS-V2gc0DrlKwH2oSDyWa1A [xxx.xxx.xxx.xxx]: "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n <!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\"\n \"http://www.w3.org/TR/xhtml1/D" </pre> Получается, что центр сертификации не может подтвердить домен сайта, для которого требуются изменения информации по сертификату. Результатом возникшей проблемы является сообщение: Возможным решением данной проблемы является возврат к предоставлению информации по HTTP, но вручную каждые три месяца корректировать конфигурационные файлы виртуального хоста неэффективно. Поэтому можно автоматизировать процедуру обновления SSL при помощи скрипта, который должен выполнять следующие действия. # Убирать редиректы с HTTP на HTTPS в нужном конфигурационном файле виртуального хоста; # Проверять корректность синтаксиса конфигурационного файла виртуального хоста; # Запрашивать выдачу нового SSL-сертификата; # Восстанавливать убранные редиректы; # Перезапускать сервис httpd2 для использования обновлённых сертификатов. Ниже приведён пример такого скрипта. Такой скрипт можно добавить в планировщик задач чтобы своевременно обновлять сертификаты необходимых сайтов. Успешные практические результаты были получены для указанных выше сервисов на основе Apache2 . В случае обновления сертификата командой сертификат не мог корректно обновиться, но при помощи приведённого выше скрипта обновление сертификата проходит успешно. {{----}} [[File:{{#setmainimage:Инфраструктурные решения на основе «Альт Образование» в СПбГЭТУ «ЛЭТИ» (Иван Хахаев, OSEDUCONF-2021)!.jpg}}|center|640px]] {{LinksSection}} <!-- <blockquote>[©]</blockquote> --> <references/> * ''Хахаев И. А.'' Снова об оценке электронных образовательных ресурсов // Свободное программное обеспечение в высшей школе : Сборник тезисов XV конференции, Переславль, 07–09 февраля 2020 года / Отв. редактор В.Л. Чёрный. — Переславль: ООО «МАКС Пресс», 2020. — С. 82–85. * https://linux-hardware.org/?probe=70139de021 * Документация LetsEncrypt. https://letsencrypt.org/ru/docs/ LetsEncrypt. https://www.altlinux.org/LetsEncrypt Как работает Let’s Encrypt. https://letsencrypt.org/ru/how-it-works/ * The Apache HTTP Server Project. https://httpd.apache.org/ {{stats|disqus_comments=0|refresh_time=2021-08-31T17:07:01.409357|vimeo_plays=0|youtube_plays=0}} [[Категория:OSEDUCONF-2021]] [[Категория:ALT Linux в образовании]] [[Категория:Draft]] [[Категория:СПО |
Текущая версия на 14:27, 12 ноября 2021
- Докладчик
- Иван Хахаев
Обсуждается механизм обеспечения поддержки и обновления SSL-сертификатов от Let’s Encript для сервисов, входящих в состав дистрибутива «Альт Образование». Приводится пример скрипта, обеспечивающего автоматическое обновление таких SSL-сертификатов для web-сервера Apache2 в дистрибутивах АЛЬТ.
Содержание
Видео
Презентация
Thesis
В 2020 году на основе «АЛЬТ Образование» в СПбГЭТУ «ЛЭТИ» были развёрнуты два крупных сервиса — LMS Moodle[1] и «облачное» хранилище NextCloud[2].
Сервисы развёртывались на виртуальных машинах (VM) на кластере из 5 серверов под управлением дистрибутива Proxmox VE 6.2.
Характеристики VM с LMS Moodle:
- ОС «АЛЬТ Образование» 9.1;
- количество зарегистрированных пользователей — около 14000;
- VM с дисковым пространством 4 Тб, RAM 64 Гб, 6 ядер 2,2 ГГц;
- среднее количество пользователей в день — около 2000;
- количество курсов — около 4300.
Характеристики VM с NextCloud:
- ОС «АЛЬТ Образование» 9.1;
- VM с дисковым пространством 20 Тб, RAM 32 Гб, 4 ядра 2,2 ГГц;
- квота на пользователя 10 Гбайт (рассчитано на 2000 пользователей — преподавателей и сотрудников).
Оба сервиса используют стек LAMP.
Одной из задач, решаемых при развёртывании указанных инфраструктурных решений, было обеспечение корректной работы https с подтверждением сертификата. Сертификаты, генерируемые при установке дистрибутива, не подтверждаются каким-либо центром сертификации, поэтому пользователи получают сообщение о вероятной угрозе безопасности.
Популярным решением является использование SSL-сертификатов от Let’s Encrypt. Такое решение связано с бесплатным распространением, простотой получения и внедрения сертификатов, которые подтверждаются центром сертификации Let’s Encrypt .
Однако на wiki сообщества АЛЬТ даётся решение по использованию SSL-сертификатов от Let’s Encrypt для веб-сервера NGINX, в то время как настройки web-сервера Apache2 в дистрибутивах АЛЬТ имеют нюансы, не позволяющие использовать информацию по настройке SSL-сертификатов от Let’s Encrypt для Apache2 из других дистрибутивов.
Поскольку в настройках виртуального хоста по умолчанию для сервиса httpd2 в дистрибутивах «АЛЬТ Образование» настроены редиректы с http на https, подтверждение сервера (домена сайт), на котором расположен сайт, для обновление SSL становится проблематичным.
Это связано с тем, что в процессе обновления сертификата необходимо проверить права на домен. Из-за ограничений безопасности в корпоративной сети СПбГЭТУ «ЛЭТИ» метод обновления SSL через DNS-запросы не подходит, т. к. дополнительные TXT-записи с ключами не прописываются. Поэтому проверка происходит через предоставление HTTP-ресурса с определённым URI. Для корректного подтверждения прав на домен агент Certbot проводит тест-запросы с соответствующими ключами через 80 порт по HTTP .
В ситуациях, когда на виртуальном хосте настроены редиректы c HTTP на HTTPS, при обновлении сертификата возникает ошибка следующего вида:
Domain: aaa.bbb.ru Type: unauthorized Detail: Invalid response from https://aaa.bbb.ru/.well-known/ acme-challenge/549OU8Q5XsKvzZ_I_QpLWS-V2gc0DrlKwH2oSDyWa1A [xxx.xxx.xxx.xxx]: "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n <!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\"\n \"http://www.w3.org/TR/xhtml1/D"
Получается, что центр сертификации не может подтвердить домен сайта, для которого требуются изменения информации по сертификату. Результатом возникшей проблемы является сообщение:
Возможным решением данной проблемы является возврат к предоставлению информации по HTTP, но вручную каждые три месяца корректировать конфигурационные файлы виртуального хоста неэффективно. Поэтому можно автоматизировать процедуру обновления SSL при помощи скрипта, который должен выполнять следующие действия.
- Убирать редиректы с HTTP на HTTPS в нужном конфигурационном файле виртуального хоста;
- Проверять корректность синтаксиса конфигурационного файла виртуального хоста;
- Запрашивать выдачу нового SSL-сертификата;
- Восстанавливать убранные редиректы;
- Перезапускать сервис httpd2 для использования обновлённых сертификатов.
Ниже приведён пример такого скрипта.
Такой скрипт можно добавить в планировщик задач чтобы своевременно обновлять сертификаты необходимых сайтов. Успешные практические результаты были получены для указанных выше сервисов на основе Apache2 .
В случае обновления сертификата командой сертификат не мог корректно обновиться, но при помощи приведённого выше скрипта обновление сертификата проходит успешно.
Примечания и ссылки
- Хахаев И. А. Снова об оценке электронных образовательных ресурсов // Свободное программное обеспечение в высшей школе : Сборник тезисов XV конференции, Переславль, 07–09 февраля 2020 года / Отв. редактор В.Л. Чёрный. — Переславль: ООО «МАКС Пресс», 2020. — С. 82–85.
- https://linux-hardware.org/?probe=70139de021
- Документация LetsEncrypt. https://letsencrypt.org/ru/docs/ LetsEncrypt. https://www.altlinux.org/LetsEncrypt Как работает Let’s Encrypt. https://letsencrypt.org/ru/how-it-works/
- The Apache HTTP Server Project. https://httpd.apache.org/
Plays:0 Comments:0