Общий форум

HTTPS и MOODLE

 
Изображение пользователя Алексей Игнашенков
HTTPS и MOODLE
 

Народ, здравствуйте. Подскажите пожалуйста, как сделать так, чтобы moodle 3.0.1 отображалась корректно с протоколом HTTPS... Заранее благодарю.

Это я…
Re: HTTPS и MOODLE
Особо активный участник форумаЭксперт по Moodle

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

Изображение пользователя Алексей Игнашенков
Re: HTTPS и MOODLE
 

Хост adminvps.ru ...SSL сертификат получен, в админ панеле виден...ОС Linux...Что то ещё нужно?

Это я…
Re: HTTPS и MOODLE
Особо активный участник форумаЭксперт по Moodle
Хост adminvps.ru ...SSL сертификат получен

Ну и какие проблемы? Хостер перевел сайт на HTTPS? Тогда редактируем config.php, указав $CFG->wwwroot = 'https://адрес_сайта';

Чистим кеш Мудл и идем по адресу /admin/tool/replace/index.php, делаем замену старого адреса (http://адрес_сайта) на новый https://адрес_сайта

Если есть доступ к БД, можно ещё там поискать старый адрес и поменять на новый. Логи можно не трогать. Всё.

Изображение пользователя Алексей Игнашенков
Re: HTTPS и MOODLE
 

спасибо, попробую!

Изображение пользователя Алексей Игнашенков
Re: HTTPS и MOODLE
 

Вадим, пара вопросов...1 Каким образом лучше очитстить кэш MOODLE...2. По этому адресу /admin/tool/replace/index.php нет уазаний на сайт...


define('NO_OUTPUT_BUFFERING', true);

require_once('../../../config.php');
require_once($CFG->dirroot.'/course/lib.php');
require_once($CFG->libdir.'/adminlib.php');

admin_externalpage_setup('toolreplace');

echo $OUTPUT->header();

echo $OUTPUT->heading(get_string('pageheader', 'tool_replace'));

if (!$DB->replace_all_text_supported()) {
    echo $OUTPUT->notification(get_string('notimplemented', 'tool_replace'));
    echo $OUTPUT->footer();
    die;
}

echo $OUTPUT->box_start();
echo $OUTPUT->notification(get_string('notsupported', 'tool_replace'));
echo $OUTPUT->notification(get_string('excludedtables', 'tool_replace'));
echo $OUTPUT->box_end();

$form = new tool_replace_form();

if (!$data = $form->get_data()) {
    $form->display();
    echo $OUTPUT->footer();
    die();
}

// Scroll to the end when finished.
$PAGE->requires->js_init_code("window.scrollTo(0, 5000000);");

echo $OUTPUT->box_start();
db_replace($data->search, $data->replace);
echo $OUTPUT->box_end();

// Course caches are now rebuilt on the fly.

echo $OUTPUT->continue_button(new moodle_url('/admin/index.php'));

echo $OUTPUT->footer();

Это я…
Re: HTTPS и MOODLE
Особо активный участник форумаЭксперт по Moodle
Каким образом лучше очитстить кэш MOODLE

Можно через WEB (/admin/purgecaches.php), можно через консоль скриптом /admin/cli/purge_caches.php, можно руками удалить папки cache и localcache из moodledata. Для надежности при переходе на HTTPS используйте 3-ий способ. И кеш браузера не забудьте почистить, а то может выдавать старые страницы из кеша.

По этому адресу /admin/tool/replace/index.php нет уазаний на сайт...

Там есть форма, в которой нужно указать, что искать (В большинстве случаев - прежний URL-адрес сервера) и на что заменить (В большинстве случаев - новый URL-адрес сервера)

Изображение пользователя Алексей Игнашенков
Re: HTTPS и MOODLE
 

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

Это я…
Re: HTTPS и MOODLE
Особо активный участник форумаЭксперт по Moodle

Какие вам нужны указания на сайт в коде?

Зайдите в браузере на страницу https://my_site_moodle/admin/tool/replace/index.php и сделайте замену всех вхождений в БД старого адреса с http:// на новый с https://

5

 

Изображение пользователя Алексей Игнашенков
Re: HTTPS и MOODLE
 

Вадим, всё получилось! Огромное Вам спасибо за помощь!

Изображение пользователя Alexey Piguzov
Re: HTTPS и MOODLE
 

А SSL покупали? Или можно каким-то бесплатным обойтись? Сейчас тоже этим озадачен.

Изображение пользователя Алексей Игнашенков
Re: HTTPS и MOODLE
 

Хост предоставляет...всё входит в стоимость обслуживания

Это я…
Re: HTTPS и MOODLE
Особо активный участник форумаЭксперт по Moodle

На своем сервере можно установить бесплатный сертификат от Let’s Encrypt

Продлевается автоматом каждые 90 дней. Для Мудл хватает. Неизвестно только, как долго эта «лафа» продлится. улыбаюсь

Изображение пользователя Алексей Игнашенков
Re: HTTPS и MOODLE
 
Мой хост такой сертификат и даёт)
Изображение пользователя Alexey Piguzov
Re: HTTPS и MOODLE
 

Тоже думаю на него попробовать. Много там заморочек если убунту сервер? И смогу ли назад откатиться если что пойдет не так? И как долго по времени этот процесс? Вадим подскажите пожалуйста, если этап пройденный у Вас

Это я…
Re: HTTPS и MOODLE
Особо активный участник форумаЭксперт по Moodle
Много там заморочек если убунту сервер?

Сервер свой или хостинг? Там основная задача - установить клиент Certbot, который получает и устанавливает letsencrypt-сертификаты SSL/TLS на веб-сервере.

По ссылке есть инструкция, ничего сложного там нет, есть конфигуратор с выбором ПО веб-сервера и ОСи. Вот для Убунты с Апач:

$ sudo apt-get update
$ sudo apt-get install software-properties-common
$ sudo add-apt-repository ppa:certbot/certbot
$ sudo apt-get update
$ sudo apt-get install python-certbot-apache

Под FreeBSD у меня ушло полтора часа на всё: чтение документации, установка/настройка клиента, получение сертификатов, конфигурация Апач.

И смогу ли назад откатиться если что пойдет не так?

А что там откатывать? Перевести сайты с 443 порта назад на 80 и сделать обратно замену https на http - это 10-15 минут

 

Изображение пользователя Alexey Piguzov
Re: HTTPS и MOODLE
 
Сервер свой или хостинг?

Свой сервер. Но я не все там делать могу.

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

Инструкцию нашел. То есть выполнить все эти команды, и всё или ещё что-то настраивать нужно, ну помимо запуска скрипта для замены http на https.

Вот про перевод портов, я не в курсе. Ни разу не делал. Это тоже нужно будет делать, после запуска всех команд?

Изображение пользователя Алексей Игнашенков
Re: HTTPS и MOODLE
 

Я бы на вашем месте, перевёл на нормальный хост...2000р. в год это не деньги, зато всё гораздо проще и быстрее...тем более мой хост, где мой сайт висит, сделает это всё за вас и бесплатно...+ ssl уже будет сразу. Но это моё мнение конечно. Это кстати не реклама)

Это я…
Re: HTTPS и MOODLE
Особо активный участник форумаЭксперт по Moodle
перевёл на нормальный хост...2000р. в год это не деньги

Бывают нормальные? Тем более за такие деньги улыбаюсь Хост есть хост, возможности ограничены, тем более CMS не простая, зависимость от техподдержки и т. д.

VPS/VDS, выделенный сервер - другое дело, но это и деньги другие.

А вот свой сервер - это полная независимость и свобода действий )))

Изображение пользователя Алексей Игнашенков
Re: HTTPS и MOODLE
 

У меня сначала висел на Руцентре, вот там действительно убогая контора - на все, даже элементарные вопросы, ответ был один - обращайтесь к разработчику сайта)....Так что, всё познаётся в сравнении.

Это я…
Re: HTTPS и MOODLE
Особо активный участник форумаЭксперт по Moodle
Свой сервер. Но я не все там делать могу.

Устанавливать ПО и править конфиги уже установленного можете?

думаю насколько времени нужно.

Я такого рода вещи (установка ПО, конфигурирование с перезапуском, обновление Мудл и т. п.) делаю в нерабочее время, т. е., вечером (ночью), имея доступ к серверу по SSH.

Инструкцию нашел. То есть выполнить все эти команды, и всё или ещё что-то настраивать нужно,

Конечно нужно. В Убунту не устанавливал, но на примере FreeBSD расскажу. В Убунту будут другие пути к каталогам, конфигам Апач и названия файлов.

Устанавливаете certbot, получаете сертификаты, запустив команду sudo certbot --apache (если Апач установлен/настроен по дефолту) или sudo certbot --apache certonly (если хотите только получить сертификаты, а Апач будет настраивать сами)

Теперь нужно перевести сайты на работу через 443 порт и подключить в конфигах Апач сами сертификаты.

В httpd.conf (в Убунту это apache2.conf) я дописал Listen 443 и подключил модуль rewrite, раскомментировав строку LoadModule rewrite_module libexec/apache24/mod_rewrite.so (мне это нужно для перенаправления запросов с 80 на 443 порт, так как я оставил возможность работы и на 80 порту).

Тут же в httpd.conf подключаем конфиг httpd-ssl.conf: Include etc/apache24/extra/httpd-ssl.conf и обязательно нужно проверить, подключен ли mod_ssl

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

<VirtualHost *:443>
#   General setup for the virtual host
DocumentRoot "/www/moodle"
ServerName moodle.site
ServerAlias www.moodle.site
ServerAdmin admin@admin
ErrorLog "/var/log/moodle_ssl-error.log"
TransferLog "/var/log/moodle_ssl-access.log"
SSLEngine on
SSLCertificateFile "/usr/local/etc/letsencrypt/live/moodle.site/cert.pem"
SSLCertificateKeyFile "/usr/local/etc/letsencrypt/live/moodle.site/privkey.pem"
SSLCertificateChainFile "/usr/local/etc/letsencrypt/live/moodle.site/chain.pem"

<FilesMatch "\.(cgi|shtml|phtml|php)$">
    SSLOptions +StdEnvVars
</FilesMatch>
<Directory "/www/cgi-bin">
    SSLOptions +StdEnvVars
</Directory>
BrowserMatch "MSIE [2-5]" \
         nokeepalive ssl-unclean-shutdown \
         downgrade-1.0 force-response-1.0
CustomLog "/var/log/moodle_ssl-request.log" \
          "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
</VirtualHost>

В Убунту пути к сертификатам будут другие, пути к сайту, логам указываете свои.

В httpd-vhosts.conf для нужного хоста прописал перенаправление запросов с HTTP на HTTPS:

<VirtualHost *:80>
   RewriteEngine On
    RewriteCond %{HTTPS} off
    RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
    ...........
</VirtualHost>

Рестартуем Апач, проверяем работоспособность, в Мудл правим конфиг, делаем replace HTTP на HTTPS. Всё.

ЗЫ: для автоматического обновления сертификатов нужно в crontab создать задачу. У меня проверка каждые 30 дней (на всякий случай улыбаюсь):

30    2    *    *    1    user    /usr/local/bin/certbot renew >> /var/log/certbot-renew.log
Изображение пользователя Vadim Dvorovenko
Re: HTTPS и MOODLE
DevelopersМайнтейнер переводаТестер MoodleЭксперт по Moodle

Выгонять не нужно, там всё без простоя можно сделать.

В Ubuntu с Apache certbot вообще всё автоматом делает, ручной правки конфигов даже не нужно. вручную только в cron на обновление поставить. Хорошая статья тут https://www.digitalocean.com/community/tutorials/how-to-secure-apache-with-let-s-encrypt-on-ubuntu-14-04

Когда первый раз будете certbot запускать, укажите, что сайт должен одновременно и по http и по https работать. Потом проверите, открывается ли у вас что-либо (какой-нибудь статичный из папки moodle попробуйте в браузере открыть через https, например, README.txt)

Если не заработает, то самое время разбираться с 443 портом на роутере/брандмауэре. При этом доступ оп 80 порту сохранится.

Когда убедитесь, что https работает, исправьте в config.php адрес на https и проверьте, как заходит. Если вдруг какие-то проблемы, сразу там исправляйте обратно. Тогда даже в случае ошибки на этом этапе простой будет несколько секунд.

После того как всё настроите, и убедитесь, что работает, нужно ещё раз certbot запустить и указать, что только по https, он настроит перенаправление с http на https.

Самой работы по настройке - минут на 15, остальное время - на чтение и вникание в суть процесса.

Если у вас есть умение и возможность на том же сервере поднять рядом ещё один сайт, можете сначала на нём потренироваться.

Изображение пользователя Alexey Piguzov
Re: HTTPS и MOODLE
 

Спасибо! Вадимы как всегда выручают!

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


Изображение пользователя Vadim Dvorovenko
Re: HTTPS и MOODLE
DevelopersМайнтейнер переводаТестер MoodleЭксперт по Moodle

Халява эта должна продлиться бесконечно, поскольку это проект некоммерческой организации, занимающейся защитой свобод в интернете. Там среди спонсоров в том числе и Mozilla.

Но нужно понимать, что предлагаемый Let'SEncrypt сертификат предназначен для шифрования трафика, чтобы провайдер и государство не знало, куда вы ходите. Это хорошо для защиты паролей и cookie. Но этот сертификат (впрочем как и дешёвые платные сертификаты вроде PositiveSSL) не подтверждает Вашу подлинность (а только то, что у вас есть доступ к администрированию сайта).

Защита всего трафика на уровне шифрования - это сейчас важная интернет-тенденция (во многих протоколах, например HTTP2 и WebRTC, шифрование сейчас делают обязательным) и Moodle тут старается на отставать. Ну а для чего это делается, для защиты ли ваших свобод, или для того, чтобы подрывать безопасность ряда государств, мешая спецслужбам анализировать трафик террористов, тут уж решайте сами. 

Это я…
Re: HTTPS и MOODLE
Особо активный участник форумаЭксперт по Moodle

Пожалуйста улыбаюсь