Let s encrypt не работает. Синтаксис и команды Certbot

SSL сертификат - это цифровое удостоверение сайта. Он необходим, если вы хотите настроить доступ к сайту по протоколу HTTPS.

Обычно сертификаты стоят денег, но можно самостоятельно и легко сгенерировать бесплатный с помощью Lets Encrypt .

Подготовка

Для получения и установки сертификата вам понадобится доступ к серверу по протоколу SSH. Вам нужно подключиться через терминал с помощью команды

Ssh user_name@host_name

либо поискать веб-консоль в панели управления вашим хостингом.

Для получения и обновления сертификата вам потребуется программа Certbot , которая будет работать с сервисом Let’s Encrypt. Чтобы её установить, введите следующие команды:

Wget https://dl.eff.org/certbot-auto chmod a+x certbot-auto

Настройка одной командой

Следующий шаг зависит от того, какой веб-сервер у вас установлен.

Apache

./certbot-auto --apache

Nginx

./certbot-auto --nginx

После ввода одной из данных команд вы увидите ответ приблизительно следующего содержания.

Запрос на ввод Email

Введите ваш или произвольный email адрес и нажмите Enter .

Запрос на согласие с правилами сервиса

Теперь вам предлагают ознакомиться с правилами использования сервиса. Введите A и нажмите Enter .

Запрос на присоединение к почтовой рассылке

Вам предлагают согласиться с получением почтовой рассылки на ваш адрес. Смело вводим N для отказа и нажимаем Enter .

Перечень ваших сайтов

Наконец, программа выведет все ваши домены, которые нашла у Apache или Nginx и предложит ввести номер того домена, который вы хотите подключить. В моём случае это будет №1. Введите число и нажмите Enter .

Результат работы программы

Вам также предложат выбрать, желаете ли вы оставить сайт доступным и по HTTP и по HTTPS или только HTTPS. Выбираем подходящий вариант и нажимаем Enter .

Готово . Теперь вы можете зайти на сайт по адресу https://<имя сайта>

Программа получила все необходимые сертификаты и положила их в директорию

/etc/letsencrypt/live/<имя вашего домена>/cert.pem

Попутно она создала новый конфиг для вашего веб-сервера и настроила доступ к сайту по протоколу HTTPS. Конфигурационный файл можно найти по адресу

/etc/apache2/sites-available/<имя домена>-le-ssl.conf

Продление

Сертификат Let’s Encrypt выдаётся на 3 месяца. Для обновления достаточно вызвать команду

./certbot-auto renew

и затем перезагрузить сервер. Удачи!

В ручном режиме для его дальнейшей установки на веб-сервер Windows (IIS/Microsoft Azure) или Linux (полностью ручной режим). Из-за отсутствия официального клиента под Windows для генерации сертификата будет использоваться дистрибутив Linux .

В первые дни открытия заявок на бета-тестирование и было принято решение записаться и вот недавно пришло письмо, которое сообщает о том, что теперь программа ACME сгенерирует валидный сертификат для нашего домена.

Как это работает

Полное описание процесса доступно по этой ссылке .
Важно лишь знать, что для подтверждения владения доменом и успешной генерации сертификата нужно будет иметь доступ к записям DNS или к серверу куда ссылается A-запись, что вполне логично.

Смысл программного набора Automated Certificate Management Environment (ACME) (написан на Python) в том, чтобы автоматизировать генерацию и установку сертификата в Linux-окружении.

Существует неофициальный Windows-клиент с открытыми исходными кодами, который может генерировать и устанавливать сертификаты на Windows IIS и Amazon Web Services, но у нас была задача получить ключи и установить их вручную. Предлагаю любому желающему написать статью по работе с ним.

Процесс по шагам

Внимание: эта инструкция учит создавать сертификат в ручном режиме, существуют и более простые способы автоматической генерации и обновления сертификатов. Надеюсь, что скоро их опишут на этом ресурсе.

Новый клиент CertBot

Небольшое обновление статьи в 2017 году.
Теперь можно установить CertBot и получить сертификат в ручном режиме.

Краткая инструкция:

1. Скачиванием дистрибутив

Wget https://dl.eff.org/certbot-auto

2. Установка прав на файл

Chmod a+x certbot-auto

3. Запуск для получения сертификата в ручном режиме

./certbot-auto certonly --authenticator manual

4. Следуйте указаниям программы (подробнее смотрите в полной инструкции ниже с шага № 4).

Подробная инструкция (старый клиент - всё ещё работает)

Использовалась официальная инструкция .
Пользователи Linux могут использовать текст ниже как пример генерации сертификата в ручном режиме.

1. Запустите ваш любимый дистрибутив Linux (мы использовали Debian 8).

либо 2. Установите Git и выполните команды ниже:

Git clone https://github.com/letsencrypt/letsencrypt
cd letsencrypt

или 2. Скачайте и распакуйте в папку данный архив и перейдите в эту папку

3. Запустите установку и генерацию с помощью

./letsencrypt-auto --agree-dev-preview --server \https://acme-v01.api.letsencrypt.org/directory -a manual auth

Вам будет предложено ввести электронную почту для восстановления в будущем.
Ключ -a manual позволит сгенерировать ключи в ручном режиме без их автоматической установки на веб-сервер.

5. Подтвердите сохранение вашего адреса в логах Let"s Encrypt

6. Подтвердите владение доменом

В сентябре 2016 года произошли небольшие изменения в порядке получения сертификата. Спасибо за обновление.

Старый способ подтверждения с text/plain (не актуально по состоянию на октябрь 2016 г.)

Если у вас сервер на Windows (с поддержкой Razor Views, аналогично и с MVC), то самый простой способ создания правильного ответа:
а) создать папку.well-known и в ней папку acme-challenge
б) поместить туда файл [запрос].cshtml
в) в содержание этого файла добавить:
@{Response.ContentType = "text/plain";Response.Charset = "";}здесь проверочный код

7. После успешной проверки, будут созданы следующие сертификаты в папке :

privkey.pem - приватный ключ для сертификата
Используется Apache для SSLCertificateKeyFile и nginx для ssl_certificate_key.

cert.pem (сертификат сервера)
Используется Apache для SSLCertificateFile.

chain.pem (сертификат цепочки)
Он же используется Apache для SSLCertificateChainFile.

fullchain.pem (соединение chain.pem и cert.pem)
Он же используется nginx для ssl_certificate.

7. Теперь пришло время сконвертировать его в родной для Windows .pfx формат.
Перейдите в папку /etc/letsencrypt/live/[имя домена] (откройте терминал в режиме администратора с помощью команды su):

Cd /etc/letsencrypt/live/[имя домена]

Запустите OpenSSL с помощью команды:

И начните конвертацию с помощью команды:

Pkcs12 -inkey privkey.pem -in fullchain.pem -export -out mydomain.pfx

Вас попросят ввести пароль и подтвердить его.

7.2 Выходим из OpenSSL с помощью команды quit

7.3 Копируем итоговый файл в директорию нашего пользователя
cp --no-preserve=all mydomain.pfx /home/(имя пользователя)/Documents

8. Мы получили сертификат mydomain.pfx , который теперь можем использовать в Windows-окружении.

Для обновления сертификата в ручном режиме:
./letsencrypt-auto certonly --renew-by-default -a manual

Важно знать, что сертификаты Let"s Encrypt валидны 90 дней. Рекомендуется обновлять их каждые 60 дней. На электронную почту, которую вы указали для генерации, будут приходить уведомления об истечении сертификата.

Буду рад услышать ваши замечания или пожелания к статье.

Наличие SSL - больше не прихоть крупных компаний, а обязательное требование для всех. Без SSL сайты теряют позиции в поисковой выдаче, посетителей и деньги. Let’s Encrypt в панели ISPmanager позволяет выпускать бесплатные SSL - как обычные, так и . Запрос и установка происходят автоматически и не требуют технических навыков.

Зачем нужен SSL-сертификат

Когда вы заходите на сайт, вы подключаетесь к серверу, на котором он расположен. Если подключение не защищено, хакеры могут украсть логины, пароли и номера банковских карт. SSL-сертификат нужен, чтобы сделать подключение защищенным. С ним данные, которые вы вводите, шифруются. Даже если хакеры их перехватят, они не смогут их расшифровать.

С 2017 года поисковые роботы Google отмечают сайты без SSL как небезопасные и понижают их позиции в поисковой выдаче. Google Chrome и Mozilla Firefox маркируют HTTP сайты как ненадежные. Так браузеры предупреждают пользователей, что мошенники могут украсть личные данные и деньги.

Переведите сайт на HTTPS, чтобы усилить позиции в поисковых системах и вызывать доверие посетителей. С модулем Let’s Encrypt для этого не нужны ни деньги, ни технические навыки.

Кому подойдет Let’s Encrypt

Let’s Encrypt выпускает SSL-сертификаты начального уровня с проверкой домена (DV). Поэтому Let’s Encrypt отлично подходит для небольших онлайн-проектов, где не требуется строгая гарантия безопасности: блогов, хобби-сайтов, сайтов-визиток. Зеленого замочка в строке браузера достаточно, если посетители не вводят логины и пароли и не совершают покупки.

DV-сертификат только подтверждает, что домен действительно принадлежит вам. Посетители сайта не столкнутся с предупреждениями браузера о посещении непроверенного сайта. Мошенники не перехватят информацию пользователей, так как сертификат обеспечивает безопасное HTTPS-соединение.

Важно! Мы не рекомендуем использовать DV-сертификат на сайтах интернет-магазинов и корпоративных порталов, где требуется более высокий уровень доверия пользователей. При выпуске SSL с проверкой домена центр сертификации не проверяет законность бизнеса. Поэтому такой сертификат не гарантирует посетителям, что владельцу домена можно доверять логины, пароли и номера банковских карт.

Как установить Let"s Encrypt

Шаг 1.

Чтобы установить Let’s Encrypt, ISPmanager должен быть не ниже версии 5.65.

  • Откройте ISPmanager,
  • Из-под учетной записи root перейдите в раздел Интеграция → Модули ;
  • Установите модуль Let’s Encrypt.

Теперь вы можете получить действующий самообновляющийся SSL-сертификат для своего домена. Для этого понадобится пользователь с правом пользоваться SSL и действующее доменное имя.

Шаг 2.

После установки в разделе Настройки web-сервера → SSL-сертификаты нажмите на кнопку Let"s Encrypt , чтобы получить сертификат. Подробнее о создании сертификата в .

Сертификат генерируется успешно, если абсолютно все указанные домены и псевдонимы (алиасы) открываются с сервера. Если даже 1 из них не откроется, не удастся выпустить сертификат.

О проекте Let’s Encrypt

Let’s Encrypt - некоммерческий доверенный центр сертификации. Он отличается от других тем, что выдает SSL-сертификаты бесплатно. При этом процесс выпуска полностью автоматизирован.

Проект создан в 2014 году, чтобы большая часть интернет-сайтов смогла перейти к безопасному соединению по HTTPS. Среди его основных спонсоров ведущие технологические компании мира: Mozilla, Google Chrome, Cisco, Facebook. Партнерами Let’s Encrypt являются центр сертификации IdenTrust, University of Michigan, Stanford Law School, Linux Foundation.

Основные принципы Let’s Encrypt:

  • Безвозмездность. Владелец любого домена может получить доверенный SSL бесплатно;
  • Автоматизация. Let’s Encrypt автоматически запрашивает, конфигурирует и обновляет сертификаты;
  • Безопасность. Let’s Encrypt продвигает лучшие практики безопасности как на стороне центра сертификации, так и на стороне веб-сайтов.

Обращаем ваше внимание, что Let’s Encrypt имеет следующие ограничения:

  1. Можно заказать только 5 сертификатов в неделю на домен первого уровня и его поддомены.
  2. Срок действия Let’s Encrypt сертификата - 3 месяца. Каждые 3 месяца ISPmanager автоматически перевыпускает сертификаты.
  3. Let’s Encrypt не предоставляет гарантий и не выплачивает компенсацию в случае утечки данных, так как является некоммерческой организацией.

Полный список ограничений

В ручном режиме для его дальнейшей установки на веб-сервер Windows (IIS/Microsoft Azure) или Linux (полностью ручной режим). Из-за отсутствия официального клиента под Windows для генерации сертификата будет использоваться дистрибутив Linux .

В первые дни открытия заявок на бета-тестирование и было принято решение записаться и вот недавно пришло письмо, которое сообщает о том, что теперь программа ACME сгенерирует валидный сертификат для нашего домена.

Как это работает

Полное описание процесса доступно по этой ссылке .
Важно лишь знать, что для подтверждения владения доменом и успешной генерации сертификата нужно будет иметь доступ к записям DNS или к серверу куда ссылается A-запись, что вполне логично.

Смысл программного набора Automated Certificate Management Environment (ACME) (написан на Python) в том, чтобы автоматизировать генерацию и установку сертификата в Linux-окружении.

Существует неофициальный Windows-клиент с открытыми исходными кодами, который может генерировать и устанавливать сертификаты на Windows IIS и Amazon Web Services, но у нас была задача получить ключи и установить их вручную. Предлагаю любому желающему написать статью по работе с ним.

Процесс по шагам

Внимание: эта инструкция учит создавать сертификат в ручном режиме, существуют и более простые способы автоматической генерации и обновления сертификатов. Надеюсь, что скоро их опишут на этом ресурсе.

Новый клиент CertBot

Небольшое обновление статьи в 2017 году.
Теперь можно установить CertBot и получить сертификат в ручном режиме.

Краткая инструкция:

1. Скачиванием дистрибутив

Wget https://dl.eff.org/certbot-auto

2. Установка прав на файл

Chmod a+x certbot-auto

3. Запуск для получения сертификата в ручном режиме

./certbot-auto certonly --authenticator manual

4. Следуйте указаниям программы (подробнее смотрите в полной инструкции ниже с шага № 4).

Подробная инструкция (старый клиент - всё ещё работает)

Использовалась официальная инструкция .
Пользователи Linux могут использовать текст ниже как пример генерации сертификата в ручном режиме.

1. Запустите ваш любимый дистрибутив Linux (мы использовали Debian 8).

либо 2. Установите Git и выполните команды ниже:

Git clone https://github.com/letsencrypt/letsencrypt
cd letsencrypt

или 2. Скачайте и распакуйте в папку данный архив и перейдите в эту папку

3. Запустите установку и генерацию с помощью

./letsencrypt-auto --agree-dev-preview --server \https://acme-v01.api.letsencrypt.org/directory -a manual auth

Вам будет предложено ввести электронную почту для восстановления в будущем.
Ключ -a manual позволит сгенерировать ключи в ручном режиме без их автоматической установки на веб-сервер.

5. Подтвердите сохранение вашего адреса в логах Let"s Encrypt

6. Подтвердите владение доменом

В сентябре 2016 года произошли небольшие изменения в порядке получения сертификата. Спасибо toxi_roman за обновление.

Старый способ подтверждения с text/plain (не актуально по состоянию на октябрь 2016 г.)

Если у вас сервер на Windows (с поддержкой Razor Views, аналогично и с MVC), то самый простой способ создания правильного ответа:
а) создать папку.well-known и в ней папку acme-challenge
б) поместить туда файл [запрос].cshtml
в) в содержание этого файла добавить:
@{Response.ContentType = "text/plain";Response.Charset = "";}здесь проверочный код

7. После успешной проверки, будут созданы следующие сертификаты в папке :

privkey.pem - приватный ключ для сертификата
Используется Apache для SSLCertificateKeyFile и nginx для ssl_certificate_key.

cert.pem (сертификат сервера)
Используется Apache для SSLCertificateFile.

chain.pem (сертификат цепочки)
Он же используется Apache для SSLCertificateChainFile.

fullchain.pem (соединение chain.pem и cert.pem)
Он же используется nginx для ssl_certificate.

7. Теперь пришло время сконвертировать его в родной для Windows .pfx формат.
Перейдите в папку /etc/letsencrypt/live/[имя домена] (откройте терминал в режиме администратора с помощью команды su):

Cd /etc/letsencrypt/live/[имя домена]

Запустите OpenSSL с помощью команды:

И начните конвертацию с помощью команды:

Pkcs12 -inkey privkey.pem -in fullchain.pem -export -out mydomain.pfx

Вас попросят ввести пароль и подтвердить его.

7.2 Выходим из OpenSSL с помощью команды quit

7.3 Копируем итоговый файл в директорию нашего пользователя
cp --no-preserve=all mydomain.pfx /home/(имя пользователя)/Documents

8. Мы получили сертификат mydomain.pfx , который теперь можем использовать в Windows-окружении.

Для обновления сертификата в ручном режиме:
./letsencrypt-auto certonly --renew-by-default -a manual

Важно знать, что сертификаты Let"s Encrypt валидны 90 дней. Рекомендуется обновлять их каждые 60 дней. На электронную почту, которую вы указали для генерации, будут приходить уведомления об истечении сертификата.

Буду рад услышать ваши замечания или пожелания к статье.

В статье рассмотрим плюсы и минусы бесплатного Let"s Encrypt, для кого подойдет, как получить и установить его на сайт с панелью Plesk 12.5

Let"s Encrypt - бесплатный, автоматизированный проект, с открытым CA (certificate authority - центр сертификации).

ОСНОВНЫЕ ПРЕИМУЩЕСТВА

бесплатно: любой владелец сайта (в частности, доменного имени) может получить и установить доверенный TLS-сертификат Let"s Encrypt (TLS - наследник SSL);
автоматизация: все функции установки, конфигурации и обновления проводятся в автоматическом режиме;
безопасность: все методы шифрования Let’s Encrypt отвечают текущим стандартам;
прозрачность: публичная доступность информации о выпуске и отзыве каждого сертификата для любого желающего;
свободно: будет использован принцип open standard для протоколов взаимодействия с CA (certificate authority).

ПРОГРАММНАЯ РЕАЛИЗАЦИЯ

Центр Сертификации выдаёт сертификаты, которые генерируются на АСМЕ сервере по протоколу Boulder, написанные на языке GO (доступный в исходниках под лицензией MPL2).
Данный сервер предоставляет RESTful-протокол, который функционирует через канал с TLS шифрованием.
Клиентская часть протокола АСМЕ, т.е. certbot, написанный на языке Python, также открыт под APACHE лицензией. Certbot устанавливается на клиентском сервере, чтобы создавать запрос сертификата, проверить валидность домена и после этого устанавливает сертификат с последующей настройкой шифрования HTTPS веб-сервера.
Также в функцию certbot входит обновление сертификата после истечения срока действия. Установка сертификата производится одной командой после того как принимается лицензия.
Certbot позволяет устанавливать сертификат с дополнительными опциями -OCSP stapling и HTTP Strict Transport Security

УСТАНАВЛИВАЕМ SSL СЕРТИФИКАТ LET"S ENCRYPT (ИНСТРУКЦИЯ)

Рассмотрим использование сертификата применительно к серверам, используемым на нашем хостинге.
Подавляющее большинство наших серверов используют версию Plesk 12.5 где данный модуль уже включён в дистрибутив Plesk 12.5 и установка его проста и удобна. Достаточно зайти в панель плеск в раздел «Сайты и домены », кликнуть на модуль Let"s Encrypt,

Выбрать нужные опции и после нажатия кнопки «Установить», установка произойдёт менее чем за минуту.

Так как данный сертификат рассчитан на срок не более 90 дней, то в панели плеск создана соответствующая задача cron в разделе Инструменты и настройки - Планировщик задач

Стоит заметить, что существуют некоторые ограничения на генерацию сертификата:

  • дублирующие сертификаты - не более 5 в неделю;
  • количество попыток генерации сертификата не более 5 раз в час.

О НЕДОСТАТКАХ LET"S ENCRYPT

В конце этой статьи хотим отметить, что несмотря на все преимущества данного типа сертификата, существуют недостатки, которые нужно учитывать при выборе SSL:
  1. Бесплатный сертификат Let"s Encrypt кратковременный и рассчитан на срок не более 90 дней, в отличии от платного, который можно выпустить сроком до 3 лет. Вы можете, конечно, перевыпускать сертификат каждые 3 месяца, но обязательно следите за сроками. Перевыпуск сертификата можно осуществить тремя способами: вручную, за счет настройки планировщика задач cron или автоматически.

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

    Планировщик задач cron - это способ настройки автоматического обновления. Способ хорош для тех, кто владеет навыками администрирования Linux и умеет работать с кронами. Нужно еще учитывать, что в работе крона не исключены ошибки, которые могут помешать перевыпуску сертификата. Вывод: следить за обновлением все равно придется.

    Автоматическое обновление. Этот способ подразумевает, что вы принимаете автоматические настройки, предусмотренные Центром сертификации. И тут нужно понимать, что вы таким образом, даете свое согласие на то, что ЦС может вносить изменения по своему усмотрению в ПО и настройки вашего сервера.

  2. Не все домены можно защитить бесплатным Let"s Encrypt. Данный сертификат рассчитан только на защиту одного домена без проверки компании, так называемые DV SSL (Domain Validation).

    Так, при помощи Let"s Encrypt нельзя создать следующие типы сертификатов:

    - WildCard сертификат для защиты поддоменов определённого домена;
    - Сертификаты OV SSL(organization validation) , предполагающие проверку не только домена, но и компании;
    - Сертификаты EV SSL (extended validation) . Сертификат с максимальной степенью защиты и зелёной адресной строкой браузера;
    - Multi-Domain сертификат типа UCC;


  3. Важный момент - нет никаких финансовых гарантий использования Let"sEncrypt . Если вдруг произойдет взлом бесплатного сертификата, то денежную компенсацию никто вам не предоставит.

ЗАКЛЮЧЕНИЕ

Подводя итоги, можно сказать, что Центр Сертификации Let"s Encrypt достаточно успешный проект, популярность которого растет с каждым годом среди пользователей сети.

И если вам нужен простой сертификат для одного домена, вы обладаете соответствующими навыками администрирования, а также если нет необходимости в SSL с проверкой компании (OV- organization validation) или наличие зеленой адресной строки и указания названия компании в сертификате, то данный сертификат можно использовать.

Тем не менее, мы рекомендуем крупным компаниям, интернет-магазинам, банкам и другим e-commerce проектам устанавливать коммерческие от известных Центров сертификации, таких как, например, GlobalSign, Comodo.
Так вы заручитесь доверием пользователей и покажете, что вы серьезная компания, которая заботится о безопасности данных клиентов.

  • Поделиться:


Просмотров