Установка и обновление SSL-сертификатов Let's encrypt в Centos 7

    Общий рейтинг статьи: 0 (проголосовало 0 )
    Опубликовано:  [просмотров 316]


    Для управления SSL-сертификатами Let's encrypt используется утилита certbot, она позволяет регистрировать и обновлять SSL-сертификаты в автоматическом режиме.

    Рассмотрим установку и настройку получения и автоматического обновления сертификатов Let's encrypt в автоматическом и полуавтоматических режимах. Штатными для Centos 7 являются webroot и standalone и эти методы мы и рассмотрим в данной статье.

    Для установки CertBOT в Centos 7 необжодимо выполнить следующие команды:

    # yum -y install yum-utils
    # yum-config-manager --enable rhui-REGION-rhel-server-extras rhui-REGION-rhel-server-optional
    # yum install certbot

    Определяемся, что у нас используется в качестве Front-сервера для обслуживания http и https запросов. В моем текущем случае используется Nginx, но для nginx плагин в centos заявлен как экспериментальный и может быть собран из исходных кодов. 

    Для получения сертификата мы можем воспользоваться режимом webroot (файлы подтверждающие владение доменом в корневом каталоге проекта) или режимом standalone (запускается собственный сервер и nginx придется отключить).

    Режим  standalone максимально простой и рассмотривать его не будем, в этом режиме вы просто останавливаете Nginx и запускаете certboot с параметрами:

    # certbot certonly --standalone -d my-domain.ru

    Режим webroot не требует остановки web-сервера и его мы рассмотрим более подробно.

    Получение сертификата Let's encrypt в режиме web-root

    Для использования режима webroot вам понадобиться в перую очередь определиться где для ваших доменов находится корень проекта. Если вы разработчик проекта, то вам это конечно же известно, но в случае если вы администрируете сторонний проект имеет смысл обратиться к разработчику и прояснить этот вопрос.

    # certbot certonly --webroot -d my-domain.ru

    При первом получении сертификата будет запущен мастер который запрашивает некоторые данные, такие как адрес электронной почты для отправки сообщений о истекающем сроке действия сертификата и собственно расположение корня web-проекта куда будет размещен файл подтверждения владения доменом.

    Select the webroot for api.adsvision.ru: -------------------------------------------------------------------------------
    1: Enter a new webroot
    -------------------------------------------------------------------------------
    Press 1 [enter] to confirm the selection (press 'c' to cancel): 1
    Input the webroot for api.adsvision.ru: (Enter 'c' to cancel):/var/www/html/london/api/web/

    Этот файл естественно должен быть доступен с внешнего интернет-хоста с которого будет проводиться проверка и подтверждение прав на владение доменом и в случае если все прошло упешно вы получите следующее сообщение:

    IMPORTANT NOTES:
    - Congratulations! Your certificate and chain have been saved at
      /etc/letsencrypt/live/my-domain.ru/fullchain.pem. Your cert
      will expire on 2017-08-01. To obtain a new or tweaked version of
      this certificate in the future, simply run certbot again. To
      non-interactively renew *all* of your certificates, run "certbot
      renew"

    Теперь вы можете настроить https на использование сертификатов Let's encrypt, для этого внесить в конфигурационный файл Nginx обслуживающий https-подключения следующие пути к сертификатам (или измените пути к сертификатам в существующих настройках):

    ssl_certificate /etc/letsencrypt/live/my-domain.ru/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/my-domain.ru/privkey.pem;

    Так как сертификаты Let's encrypt выдаются на короткий период времени (90 дней) вам потребуется настроить автоматическое обновление сертификатов, для чего можно в файл /etc/crontab прописать запуск автоматического обновления сертификатор один раз в неделю:

    1 5 * * 6 root /usr/bin/certbot renew


    Связанные записи в блоге

    Обсуждение статьи

    Ваш комментарий: