Для того, чтобы между пользователем и сайтом, на который он заходит, было безопасное соединение, устанавливают сертификат для домена Сертификат обеспечивает шифрование данных, в результате взаимодействие с сайтом становится безопасным. Сертификаты бывают не только платные, но и бесплатные. Одним из надежных бесплатных сертификатов является сертификат Let's Encrypt. Получить его можно с помощью certbot, затем установить на веб-сервере. Процесс получения сертификата несложный, но нужно немного поработать в терминале.
Как получить бесплатный сертификат Let's Encrypt и установить его на сайте хостинга Ru-Center
Получение бесплатного сертификата Let's Encrypt
Для получения сертификата воспользуемся операционной системой Debian 8. Сначала надо выполнить немного подготовительных действий:
- подключим репозитории;
- установим deb пакет ntp - произведем синхронизацию по дате и времени;
- установим deb пакет filezilla - для работы с файлами и сайтом.
Подключение репозитория
Для чего нужны репозитории и какие бывают можно почитать. Открываем терминал, команды выполняем под пользователем root или используем sudo. Чтобы прописать репозитории открываем файл sources.list (каталог /etc/apt) в любом блокноте:
# nano /etc/apt/sources.list
Прописываем репозитории и сохраняем файл:
# security updates
deb http://security.debian.org/ jessie/updates main contrib non-free
deb-src http://security.debian.org/ jessie/updates main contrib non-free
# binary and source packages
deb http://ftp.ru.debian.org/debian/ jessie main contrib non-free
deb-src http://ftp.ru.debian.org/debian/ jessie main contrib non-free
# jessie-updates
deb http://ftp.ru.debian.org/debian/ jessie-updates main contrib non-free
deb-src http://ftp.ru.debian.org/debian/ jessie-updates main contrib non-free
Установка deb пакетов ntp и fileziilla
Для установки пакета ntp (для синхронизации времени в системе):
# apt-get install ntp
Для установки пакета fillezilla:
# apt-get install filezilla
Далее обновляем список пакетов, доступных из репозитория в системе:
# apt-get update
Затем проверяем актуальность даты и времени в системе:
# date
Установка deb пакета certbot и получение сертификата
Создаём каталог, скачаем в этот каталог пакет certbot, присвоим certbot нужные права:
# mkdir /letsencrypt
# cd /letsencrypt
# wget https://dl.eff.org/certbot-auto
# chmod a+x certbot-auto
Получение сертификата
Для получения сертификата запускаем certbot:
# ./certbot-auto certonly --manual
На появление запроса "Хотите продолжить?" - "y". После установки и настройки необходимых для операционной системы пакетов, отвечаем на запросы.
- Enter email address.... -
Адрес электронной почты защищен от спам-ботов. Для просмотра адреса в браузере должен быть включен Javascript. (вписываем свой почтовый адрес на который будет зарегистрирован сертификат). - Please read the Terms of Service at... - A
- Would you be willing to share your email address.... - N
- Please enter in your domain name(s)... - feode.ru (вписываем свой домен)
- Are you OK with your IP being logged? - Y
Далее нас попросят создать на веб сервере в корне домена каталог /.well-known/acme-challenge/.
В этом каталоге необходимо создать файл с именем и содержимым, которое указано в диалоге.
Для этого открываем filezilla, вводим данные (хост, имя пользователя, пароль), нажимаем "Быстрое соединение". Далее переходим в корень сайта (например /feode.ru/docs/)
В корне сайта создаём каталог /.well-known/, переходим в этот каталог и создаём еще один каталог с именем /acme-challenge/.
Затем открываем новый терминал и создаём в каталоге /letsencrypt/ файл с именем, которое указано в первом терминале и с помощью блокнота записываем в этот файл данные, которые указаны в первом терминале.
Копируем этот файл с помощью filezilla на сайт в каталог /.well-known/acme-challenge/
Проверяем правильность выполненных действий открыв ссылку в браузере.
В результате откроется в браузере содержимое файла, который мы скопировали на наш сайт.
После проверки в первом терминале нажимаем "Enter" и получаем сертификат. Ключи сертификата можно найти по адресу /etc/letsencrypt/archive/yoursite/.
Установка сертификата на сайт
Для установки сертификата Let's Encrypt на хостинг Ru-Center, открываем в бразере сайт https://www.nic.ru/, вводим № договора и пароль. Далее надо пройти по следующему пути: Хостинг, почта, конструктор сайтов - Управление хостингом - Сайты. Выбираем сайт, на который будем устанавливать сертификат. В новом окне выбираем вкладку "Безопасность". Включаем чекбокс "Защищенное HTTPS-соединение".
Появится предупреждение "Для включения HTTPS-соединения необходимо установить SSL-сертификат". Нажимаем "Установить".
Перед тем как загрузить ключи сертификата, скопируем в терминале операционной системы ключи в каталог /letsencrept/:
# cp -r /etc/letsencrypt/archive/yoursite.ru/* /letsencrypt/
- Для поля "Сертификат" выбираем cert1.pem
- Для поля "Промежуточный сертификат" нажимаем "Загрузить промежуточный сертификат" и выбираем chain1.pem. Затем выбираем fullchain1.pem.
- Для поля "Приватный ключ сертификата" нажимаем "Загрузить файл" и выбираем privkey1.pem.
Нажимаем "Установить". Если всё сделано правильно, то появится "Вы успешно установили сертификат".
Через 5-7 минут сертификат заработает и появится возможность загружать сайт с помощью https. В браузере появится надпись защищено, когда вы будете открывать свой сайт. Сертификат будет действителен 3 месяца.
Перенаправление всех запросов с протокола HTTP на HTTPS
Чтобы ваш сайт работал исплючительно по протоколу HTTPS необходимо в файле .htaccess добавить:
RewriteEngine On
RewriteCond %{ENV:HTTPS} !on
RewriteRule ^.*$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Посмотреть, что и как делать, можно здесь: