Генератор устойчивых к взлому паролей   •   Online-инструменты
607 просм
11 комм
Поделиться:

Установка бесплатного сертификата от Let’s Encrypt на сайт с сервером CentOS 6 + ISPmanager 4 + Nginx + Apache

Честно говоря, я далек от тонкой настройки веб-серверов, но, несмотря на это, изредка мне все же приходится иметь с ними дело. Весь минус сервера (для меня, в отличие от обычного хостинга) – это то, что для того чтобы установить какое либо дополнение для сайта, необходимо перебрать кучу разных библиотек и дополнительных пакетов. И, как вы поняли, сегодня мы поговорим о варианте установки бесплатного сертификата от Let’s Encrypt на сервер в комплектации CentOS 6 + ISPmanager 4 + Nginx. Именно такая задача встала передо мной при работе с сервером в этот раз.

Если вы имеете свежую версию панели управления (напомню, что в моем случае это была панель 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 файла. Это:

  1. cert.pem – сертификат домена (физический файл находится по адресу «/etc/letsencrypt/archive/your_site.com/cert1.pem»);
  2. privkey.pem – приватный ключ сертификата (физический файл находится по адресу «/etc/letsencrypt/archive/your_site.com/privkey1.pem»);
  3. chain.pem – промежуточный сертификат (физический файл находится по адресу «/etc/letsencrypt/archive/your_site.com/chain1.pem»);
  4. fullchain.pem – объединение cert.pem и chain.pem (физический файл находится по адресу «/etc/letsencrypt/archive/your_site.com/fullchain1.pem»).

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

4. Поскольку сертификат от Let’s Encrypt дается всего на 3 месяца, то по истечении этого времени сертификат нужно перевыпускать. Сделать это можно вручную с помощью команды:

certbot-auto renew

или автоматически с помощью планировщика cron. Для этого зайдите в панель управления вашим сервером. В левом меню найдите раздел «Инструменты», пункт «Планировщик (cron)»:

Установка бесплатного сертификата от Let’s Encrypt на сайт с сервером CentOS 6 + ISPmanager 4 + Nginx + Apache

На открывшейся странице в правом верхнем углу нажмите «Создать»:

Установка бесплатного сертификата от Let’s Encrypt на сайт с сервером CentOS 6 + ISPmanager 4 + Nginx + Apache

В появившейся форме выбираете аналогичные параметры:

Установка бесплатного сертификата от Let’s Encrypt на сайт с сервером CentOS 6 + ISPmanager 4 + Nginx + Apache

В качестве исполняемой команды вы пишете:

/usr/local/sbin/certbot-auto renew && /etc/init.d/nginx reload

и жмете «Ok».

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

С выпуском сертификата мы закончили, теперь осталось привязать их к необходимым доменам.

Привязка бесплатного сертификата от Let’s Encrypt к сайту

Здесь тоже нет ничего сложного. Главное – внимательно выполняйте все шаги.

1. В панели управления вашим сервером, в левом меню перейдите в раздел «Домены», пункт «WWW домены»:

Установка бесплатного сертификата от Let’s Encrypt на сайт с сервером CentOS 6 + ISPmanager 4 + Nginx + Apache

2. На открывшейся странице вы ищете ваш домен и щелкаете по нему два раза левой кнопкой мыши, после чего у вас откроется окно с его настройками:

Установка бесплатного сертификата от Let’s Encrypt на сайт с сервером CentOS 6 + ISPmanager 4 + Nginx + Apache

Здесь вы ставите галку на «SSL», после чего ниже у вас появится два пункта. Это «SSL порт» (будет заполнен автоматически) и «SSL сертификат» (должно быть выбрано «создать новый самописный»).

Жмете «Ok» и ждете, пока ваш сервер перезагрузится для применения новых параметров.

3. Далее в левом меню вы ищете «Менеджер файлов» в разделе «Инструменты» и переходите к нему. В нем вам нужно пройти по адресу:

/var/www/httpd-cert/pandoge

где «pandoge» – это ваш логин. В этой папке находятся все самоподписанные сертификаты всех доменов на вашем сервере.

Здесь вы ищете файлы your_site.com.crt и your_site.com.key. Удаляете их и в замен создаете символические ссылки на файлы с 3 шага в выпуске сертификата.

Для этого в верхнем правом углу вы жмете «Создать»:

Установка бесплатного сертификата от Let’s Encrypt на сайт с сервером CentOS 6 + ISPmanager 4 + Nginx + Apache

А появившуюся форму заполняете по аналогии для файла your_site.com.crt:

Установка бесплатного сертификата от Let’s Encrypt на сайт с сервером CentOS 6 + ISPmanager 4 + Nginx + Apache

Затем то же самое вы проделываете для файла your_site.com.key:

Установка бесплатного сертификата от Let’s Encrypt на сайт с сервером CentOS 6 + ISPmanager 4 + Nginx + Apache

Во всех случаях не забывайте «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, который находится в корне настраиваемого сайта.

На этом все. Если остались вопросы – пишите об это в комментариях под данной статьей.

11
комментариев
11.03 в 12:57
Здравствуйте! Это уже проверенная схема, работает в долговременном периоде времени? В смысле протестировано, скажем на протяжении полгода?
А то бывает нюансы всякие, какие-нибудь неучтённые мелочи, из-за которых через месяц-два-три всё может сломаться..
  • 1
11.03 в 13:19
после запуска такой команды
certbot-auto certonly -a webroot --webroot-path= /var/www/viamag/data/www/mysite.ru
-d mysite.ru -d www.mysite.ru
выдается такая ошибка:

Bootstrapping dependencies for RedHat-based OSes that will use Python3... (you can skip this with --no-bootstrap)
yum is /usr/bin/yum
No supported Python package available to install. Aborting bootstrap!

по первой команде файл скачался
wget https://dl.eff.org/certbot-auto, а вот после выполнения второй и третьей просто ничего не выдал, может по какой-то причине не поставился certbot ?
  • 0
Димитрий, здравствуйте.

Там где я устанавливал сертификаты по такому принципу - проблем не обнаружено.
  • 0
Димитрий, на сколько я понял из текста ошибки - нужно обновить питон до более новой версии.
  • 0
3.04 в 13:28
Странно у меня когда нужно раздать сертификаты в www доменах, в пункте SSL сертификаты, нет такого параметра как создать новый самоподписанный. Подскажите где я согрешил?
  • 0
Сергей, какая версия ISPmanager?
  • 0
3.04 в 15:05
ISP Manager 4 lite, прописал все вроде бы но теперь не видит домены. Испугало теперь сижу думаю что делать!Все по шагам по гайду сделал! По домену вижу только панель хостинга, сайт на этом домене и на поддоменах теперь не видны. Причем странно что не по https не по http. За голову взялся, думаю что делать(((
  • 0
Сергей, предоставьте все доступы, посмотрю в чем может быть дело.
  • 0
3.04 в 20:36
Куда вам можно написать? Просто тут думаю не стоит доступы выкладывать))))
  • 0
Сергей, можете и тут, либо через форму обратной связи.
  • 0
4.04 в 08:10
Отправил в форму обратной связи.Спасибо.
  • 0
Гостям запрещено учавствовать в обсуждениях сайта. Авторизуйтесь, чтобы иметь возможность оставить свое мнение о материале или задать вопрос.
Подняться наверх