Установка бесплатного сертификата от Let’s Encrypt на сайт с сервером CentOS 6 + ISPmanager 4 + Nginx + Apache
Честно говоря, я далек от тонкой настройки веб-серверов, но, несмотря на это, изредка мне все же приходится иметь с ними дело. Весь минус сервера (для меня, в отличие от обычного хостинга) – это то, что для того чтобы установить какое либо дополнение для сайта, необходимо перебрать кучу разных библиотек и дополнительных пакетов. И, как вы поняли, сегодня мы поговорим о варианте установки бесплатного сертификата от Let’s Encrypt на сервер в комплектации CentOS 6 + ISPmanager 4 + Nginx + Apache. Именно такая задача встала передо мной при работе с сервером в этот раз.
Если вы имеете свежую версию панели управления (напомню, что в моем случае это была панель ISPmanager), то установка сертификата осуществляется буквально в пару несложных шагов, когда как старые версии лишены такой роскоши и все необходимо проделывать вручную. Мне удалось оседлать этого коня (перевод сайта на протокол https), и как именно, я расскажу вам подробно в этой статье.
Выпуск бесплатного сертификата на сервере от Let’s Encrypt
Путь перевода сайта на защищенный протокол мы начнем с выпуска сертификата. Все это делается по большей части в автоматическом режиме с помощью утилиты «certbot-auto».
1. Итак, для начала подключитесь к вашему серверу по SSH под главным профилем.
2. Далее выполните три команды в окне программы, через которую вы осуществляли соединение с сервером.
Первая команда:
wget https://dl.eff.org/certbot-auto
Вторая команда:
cp certbot-auto /usr/local/sbin/certbot-auto
И третья команда:
chmod a+x /usr/local/sbin/certbot-auto
Таким образом, мы скачиваем «certbot-auto» на наш сервер и разрешаем его выполнение.
3. Далее выполняем команду на получение сертификата для конкретного домена:
certbot-auto certonly -a webroot --webroot-path=/var/www/pandoge/data/www/your_site.com -d your_site.com -d www.your_site.com
«your_site.com» здесь – это ваш домен (прописывается два раза), а «/var/www/pandoge/data/www/your_site.com» – полный рут адрес до папки сайта. О том, как узнать этот адрес, написано в отдельной нашей статье.
Если все сделано правильно, то вы получите сообщение следующего содержания:
IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/your_site.com/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/your_site.com/privkey.pem
Your cert will expire on 2019-04-30. To obtain a new or tweaked
version of this certificate in the future, simply run certbot-auto
again. To non-interactively renew *all* of your certificates, run
"certbot-auto renew"
- If you like Certbot, please consider supporting our work by:
Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate
Donating to EFF: https://eff.org/donate-le
Если этого сообщения вы не получили, то перепроверяйте пути до сайта – это, на мой взгляд, самая распространённая проблема.
Все выпущенные сертификаты будут находиться на вашем сервере по пути:
/etc/letsencrypt/live/your_site.com
Где «your_site.com» – это домен, для которого вы выпускали сертификат. В папке вы найдете 4 файла. Это:
- cert.pem – сертификат домена;
- chain.pem – промежуточный сертификат;
- privkey.pem – приватный ключ сертификата;
- fullchain.pem – объединение cert.pem и chain.pem.
Нас с вами интересуют только два последних файла. Запомните их местоположение, так как позже они нам понадобятся.
4. Поскольку сертификат от Let’s Encrypt дается всего на 3 месяца, то по истечении этого времени сертификат нужно перевыпускать. Сделать это можно вручную с помощью команды:
certbot-auto renew
или автоматически с помощью планировщика cron. Для этого зайдите в панель управления вашим сервером. В левом меню найдите раздел «Инструменты», пункт «Планировщик (cron)»:
На открывшейся странице в правом верхнем углу нажмите «Создать»:
В появившейся форме выбираете аналогичные параметры:
В качестве исполняемой команды вы пишете:
/usr/local/sbin/certbot-auto renew && /etc/init.d/nginx reload
и жмете «Ok».
Таким образом, ночью каждого понедельника будет проверяться актуальность всех выпущенных сертификатов и по необходимости их обновление и перезагрузка Nginx.
С выпуском сертификата мы закончили, теперь осталось привязать их к необходимым доменам.
Привязка бесплатного сертификата от Let’s Encrypt к сайту
Здесь тоже нет ничего сложного. Главное – внимательно выполняйте все шаги.
1. В панели управления вашим сервером, в левом меню перейдите в раздел «Домены», пункт «WWW домены»:
2. На открывшейся странице вы ищете ваш домен и щелкаете по нему два раза левой кнопкой мыши, после чего у вас откроется окно с его настройками:
Здесь вы ставите галку на «SSL», после чего ниже у вас появится два пункта. Это «SSL порт» (будет заполнен автоматически) и «SSL сертификат» (должно быть выбрано «создать новый самописный»).
Жмете «Ok» и ждете, пока ваш сервер перезагрузится для применения новых параметров.
3. Далее в левом меню вы ищете «Менеджер файлов» в разделе «Инструменты» и переходите к нему. В нем вам нужно пройти по адресу:
/var/www/httpd-cert/pandoge
где «pandoge» – это ваш логин. В этой папке находятся все самоподписанные сертификаты всех доменов на вашем сервере.
Здесь вы ищете файлы your_site.com.crt и your_site.com.key. Удаляете их и в замен создаете символические ссылки на файлы с 3 шага в выпуске сертификата.
Для этого в верхнем правом углу вы жмете «Создать»:
А появившуюся форму заполняете данные по аналогии для файла your_site.com.crt:
Затем то же самое вы проделываете для файла your_site.com.key:
Во всех случаях не забывайте «your_site.com» заменять на ваш домен, для которого вы выпускали сертификат и который настраиваете в данный момент.
После того, как все настройки выполнены, ваш сайт будет доступен по протоколу https. Далее вы уже добавляете 301 редирект, чтобы исключить дубли страниц сайта, и осуществляете прочие процедуры для переиндексации сайта по новому протоколу.
Простой пример 301 редиректа с http на https:
RewriteCond %{HTTPS} off
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Его необходимо вставлять сразу после строки «RewriteEngine On» в файле .htaccess, который находится в корне настраиваемого сайта.
На этом все. Если остались вопросы – пишите об это в комментариях под данной статьей.