Можно долго ругаться на RUCENTER за нежелание дать клиентам виртуального хостинга бесплатные SSL сертификаты, но воз и ныне там. В связи с этим пользователям остается либо уходить на другой хостинг, либо оставаться без HTTPS протокола и наблюдать неприятные пометки о небезопасности в результатах поисковиков. Брать же платный сертификат в RUCENTER для виртуального хостинга нет никакого смысла, за эти деньги можно взять на год VPS/VDS хостинг и генерировать сертификаты без ограничения. Но если вы всё таки пользуетесь их виртуальным хостингом и хотите использовать бесплатные сертификаты, то могу предложить практически автоматизированный способ их получения.
Для начала нам нужно подключиться к нашему хостингу по SSH. Информация для подключения была в письме при регистрации хостинга. Если письмо не сохранилось, то эту информацию можно найти в личном кабинете RUCENTER -> Хостинг, Почта, Конструктор сайтов -> Управление хостингом -> FTP и SSH-> вкладка SSH.
После авторизации по SSH yнасервер, выполняем следующие команды:
1 - устанавливаем себе acme.sh командой, указав свой email адрес
curl https://get.acme.sh | sh -s email=your_email --force
2 - запускаем процедуру получения сертификата командой, заменив your_domain своим доменом
./.acme.sh/acme.sh --issue -d your_domain -w ~/your_domain/docs/ --server letsencrypt
после параметра -w указывается корневая папка вашего сайта для выбранного домена. В качестве сервера специально указан letsencrypt поскольку он по прежнему выдаёт сертификаты для зоны .ru
3 - создаем в корне своей домашней папки shell скрипт для генерации сертификатов и переносе их в домашнюю директорию
touch get_cert.sh chmod +x get_cert.sh
вставляем в файл содержимое (любым удобным способом - vi, mcedit или даже через FTP)
#!/usr/bin/bash ~/.acme.sh/acme.sh --renew -d your_domain cp ~/.acme.sh/your_domain_ecc/your_domain.cer ~ cp ~/.acme.sh/your_domain_ecc/your_domain.key ~
заменив your_domain на свой домен
4 - теперь нам нужно изменить конфигурационные файлы nginx чтобы он начал работать с SSL. Для того чтобы уменьшить количество правок в файлах и избежать возможных ошибок первый раз рекомендую подключить SSL для сайта через панель хостинга, скачав полученные два файла (your_domain.cer и your_domain.key) и добавив их в панели управления хостингом (Управление хостингом -> SSL и антивирус -> Установить).
5 - теперь переведём конфигурирование сайта с автоматического на ручное (Управление хостингом -> Сайты -> выбираем нужный сайт -> Настройки -> Веб-сервер -> выключаем "Автоматический режим работы сайта"). Теперь при подключении по SSH у нас будет возможность править конфигурационные файлы nginx - у нас появились файлы конфигурации в папке ~/etc
6 - редактируем файл ~/etc/nginx/your_domain.conf (не забываем на всякий случай сделать копию). Находим в файле
ssl_certificate /etc/nginx/ssl/your_domain/site0.cert; ssl_certificate_key /etc/nginx/ssl/your_domain/site0.key;
и меняем на
ssl_certificate /home/your_login/your_domain.cer; ssl_certificate_key /home/your_login/your_domain.key;
не забываем заменить your_domain на свой домен, а your_login это это пользователь под которым авторизуетесь по SSH (можно подглядеть в этом же файле в параметре root)
7 - теперь создадим в Планировщике заданий задачу по запуску нашего скрипта раз в месяц
теперь сертификат будет обновляться каждый месяц
8 - единственная задача, которую мы не можем автоматизировать и нам придётся её проделывать самим раз в 3 месяца, это перезапуск Веб-сервера. Управление веб-сервером -> Настройки сервера -> Перезагрузить.
Для удобства за состоянием сертификата можем добавить ваш сайт в систему мониторинга, если у вас такая есть, или просто ждать на указанный вами email уведомление о том, что сертификат скоро закончится.