Сертификаты, выпущенные Let’s Encrypt, являются доверенными для всех основных браузеров и действительны в течение 90 дней с даты выпуска
Let’s Encrypt — это бесплатный, автоматизированный и открытый центр сертификации, разработанный исследовательской группой Internet Security Research Group (ISRG), который предоставляет бесплатные сертификаты SSL.
В этом руководстве мы предоставим пошаговые инструкции по установке бесплатного SSL-сертификата Let’s Encrypt на CentOS с Nginx в качестве веб-сервера. Мы также покажем, как настроить Nginx для использования SSL-сертификата и включения HTTP / 2.
Прежде чем продолжить, убедитесь, что вы выполнили следующие условия:
- У вас есть доменное имя, указывающее на ваш публичный IP. Мы будем использовать example.com.
- Установлен Nginx на сервере CentOS.
- Ваш брандмауэр настроен на прием соединений через порты 80 и 443.
СИНТАКСИС И КОМАНДЫ CERTBOT
Прежде чем перейти к работе, давайте рассмотрим синтаксис утилиты Certbot и её команды. Они выглядят достаточно просто:
certbot команда опции -d домен
Команды используются для того, чтобы сообщить утилите, что именно надо сделать. Вот основные из них:
- run — используется по умолчанию, если никакая команда не указана, получает и устанавливает сертификат;
- certonly — только получает или обновляет сертификат, но не устанавливает его;
- renew — обновляет сертификат;
- enhance — добавляет настройки безопасности для существующих сертификатов;
- certificates — отображает установленные сертификаты;
- revoke — отзывает сертификат;
- delete — удаляет сертификат;
- register — создает ACME-аккаунт;
Команд не так много, и теперь вы в них точно не запутаетесь, а теперь разберём основные опции:
- -d — указывает домен или список доменов, разделённых запятыми, для которых надо получить сертификаты;
- —apache — использовать плагин apache для установки сертификата;
- —nginx — использовать плагин nginx;
- —standalone — запускать собственный веб-сервер для аутентификации при получении сертификата;
- —preferred-challenges — позволяет выбрать способ аутентификации, по умолчанию http, но можно выбрать dns;
- —server — позволяет указать адрес ACME-сервера, нужно для WildCard-сертификатов, поскольку они поддерживаются только второй версией ACME;
- —webroot — поместить файлы аутентификации в папку веб-сервера;
- -w — указывает папку веб-сервера, куда надо поместить файлы аутентификации;
- —manual — создание сертификата в ручном режиме;
- -n — запустить утилиту в не интерактивном режиме;
- —dry-run — тестовый запуск без сохранения изменений на диск.
Установка Certbot на CentOS 7 с nginx / apache.
Выполняем поиск необходимых компанентов.
yum search cerbot
Устанавливаем сам клиент и модуль работы с сервером (пример для nginx):
yum install certbot python2-certbot-nginx
Если же вы используете apache, то выполните установку certbot с соответствующим модулем:
yum install certbot python2-certbot-apache
Приступаем к непосредственному получению бесплатного сертификата и настройке https. Если вы используете nginx, выполните.
certbot --nginx
Если у вас установлен apache:
certbot --apache
Запросить новый сертификат с помощью Certbot
Установив Certbot, вы можете запросить сертификат у Let’s Encrypt. Прежде чем продолжить, обратите внимание на следующие пункты:
- Домены, которые вы запрашиваете. Вы можете запросить до 100 доменов для одного сертификата Let’s Encrypt.
- Расположение корневого каталога или каталогов документов вашего сайта. Эта информация необходима
certbot
команде для установки текстового файла для проверки. Если вы добавляете несколько доменов, указывающих на разные каталоги, вам нужно указать их все в команде. - Вы должны разрешить доступ к каталогу /.well-known/acme-challenge/ .
- Вы должны исключить каталог /.well-known/acme-challenge/ из принудительного перенаправления с HTTP на HTTPS.
При первом запуске Certbot предлагает ввести адрес электронной почты и принять условия обслуживания.
Запустите следующую команду с вашими данными, чтобы запросить сертификат:
certbot certonly --webroot -w /var/www/example.com -d example.com -d www.example.com
certonly
: флаг, указывающий только на выпуск сертификата и ничего больше. Команда не выполняет настройку веб-приложения.--webroot
: указывает Certbot использовать указанный веб-каталог, каждый из которых разделен-w
флагом.-d
: указывает запрашиваемый домен. У вас должен быть-d
флаг для каждого домена, который вы хотите использовать в сертификате.
Если вы хотите охватить как версии домена с www , так и версии без www в одном сертификате, вы должны использовать -d
флаг для каждой из них. (-d example.com -d www.example.com)
После ввода команды отобразится следующий вывод:
Obtaining a new certificate Performing the following challenges: http-01 challenge for letest.mccrocklin.space Using the webroot path /var/www/vhosts/example.com for all unmatched domains. Waiting for verification...
Если с проверкой проблем нет, вы увидите следующий вывод:
Cleaning up challenges IMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at: /etc/letsencrypt/live/example.com/fullchain.pem Your key file has been saved at: /etc/letsencrypt/live/example.com/privkey.pem Your cert will expire on 2020-10-30. 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" - Your account credentials have been saved in your Certbot configuration directory at /etc/letsencrypt. You should make a secure backup of this folder now. This configuration directory will also contain certificates and private keys obtained by Certbot so making regular backups of this folder is ideal. - 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
Расположение файлов сертификатов
Certbot по умолчанию устанавливает сертификаты в /etc/letsencrypt/live/<domain.tld>/ .
<domain.tld>
всегда является первым доменом, который вы задаете при выполнении certbot
команды. Имейте это в виду, когда вы настраиваете виртуальный хост или серверные блоки так, чтобы они указывали на файлы сертификатов.
Обратите внимание, что все эти файлы являются символическими ссылками. Это важно для автоматизированного процесса продления, описанного в следующем разделе «Продление». Обратите внимание на следующие имена файлов и их использование:
- cert.pem — это сертификат.
- chain.pem — это пакет ЦС.
- fullchain.pem — это сертификат, за которым следует пакет ЦС.
- privkey.pem — закрытый ключ.