Артём Мáлков

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

25 янв13 комм

Честно говоря, я далек от тонкой настройки веб-серверов, но, несмотря на это, изредка мне все же приходится иметь с ними дело. Весь минус сервера (для меня, в отличие от обычного хостинга) – это то, что для того чтобы установить какое либо дополнение для сайта, необходимо перебрать кучу разных библиотек и дополнительных пакетов. И, как вы поняли, сегодня мы поговорим о варианте установки бесплатного сертификата от 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 файла. Это:

  1. cert.pem – сертификат домена;
  2. chain.pem – промежуточный сертификат;
  3. privkey.pem – приватный ключ сертификата;
  4. fullchain.pem – объединение cert.pem и chain.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, который находится в корне настраиваемого сайта.

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

Рекомендуем к просмотру
Как правильно перенести свой сайт на WordPress на безопасный протокол HTTPS?
Статьи и советы
Убираем .html, .php и .htm в конце URL-адресов на Apache/Nginx
Статьи и советы
Настраиваем кэширование файлов и GZIP-сжатие на сайте в Nginx
Статьи и советы
13
комментариев
Форма комментирования этого поста скрыта. Авторизуйтесь, чтобы расширить привилегии гостевого посещения и получить необходимую помощь от сообщества Pandoge.
    • 1
    2
      •  Проверенный
    22 авг в 18:50

    Попробую у себя на каком нибудь сайтике...

    • 0
    1066
      •  Команда Pandoge
    1 мая в 23:13

    Статья обновлена.

    Исправлено пару проблем с автовыпуском сертификата.

    • 0
    4
      •  Проверенный
    3 апр в 13:28

    Странно у меня когда нужно раздать сертификаты в www доменах, в пункте SSL сертификаты, нет такого параметра как создать новый самоподписанный. Подскажите где я согрешил?

      • 0
      1066
        •  Команда Pandoge
      3 апр в 13:59

      Сергей, какая версия ISPmanager?

      • 0
      4
        •  Проверенный
      3 апр в 15:05

      ISP Manager 4 lite, прописал все вроде бы но теперь не видит домены. Испугало теперь сижу думаю что делать!Все по шагам по гайду сделал! По домену вижу только панель хостинга, сайт на этом домене и на поддоменах теперь не видны. Причем странно что не по https не по http. За голову взялся, думаю что делать(((

      • 0
      1066
        •  Команда Pandoge
      3 апр в 17:49

      Сергей, предоставьте все доступы, посмотрю в чем может быть дело.

      • 0
      4
        •  Проверенный
      3 апр в 20:36

      Куда вам можно написать? Просто тут думаю не стоит доступы выкладывать))))

      • 0
      1066
        •  Команда Pandoge
      3 апр в 21:54

      Сергей, можете и тут, либо через форму обратной связи.

      • 0
      4
        •  Проверенный
      4 апр в 08:10

      Отправил в форму обратной связи.Спасибо.

    • 1
    2
      •  Проверенный
    11 мар в 12:57

    Здравствуйте! Это уже проверенная схема, работает в долговременном периоде времени? В смысле протестировано, скажем на протяжении полгода?

    А то бывает нюансы всякие, какие-нибудь неучтённые мелочи, из-за которых через месяц-два-три всё может сломаться..

      • 0
      2
        •  Проверенный
      11 мар в 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
      1066
        •  Команда Pandoge
      11 мар в 13:23

      Димитрий, здравствуйте.

      Там где я устанавливал сертификаты по такому принципу - проблем не обнаружено.

      • 0
      1066
        •  Команда Pandoge
      11 мар в 13:32

      Димитрий, на сколько я понял из текста ошибки - нужно обновить питон до более новой версии.

Подняться наверх
«Pandoge» - помощник вебмастера