Различия
Показаны различия между двумя версиями страницы.
Предыдущая версия | |||
— | let_s_encrypt [2025/07/06 12:39] (текущий) – внешнее изменение 127.0.0.1 | ||
---|---|---|---|
Строка 1: | Строка 1: | ||
+ | ====== Настройка Linux для использования центра SSL сертификации Lets Encrypt ====== | ||
+ | ~~Title: Где получить SSL сертификат бесплатно? | ||
+ | {{htmlmetatags> | ||
+ | metatag-description=Список бесплатных центров SSL сертификатов. Установка и использование Let’s Encrypt. Настройка certbot и acme.sh (альтернатива certbot). | ||
+ | }} | ||
+ | |||
+ | {{ :: | ||
+ | |||
+ | Домашняя страница: | ||
+ | |||
+ | Чтобы получить SSL сертификат для вашего домена от Let’s Encrypt, вам необходимо запустить клиентскую часть на вашем сервере. | ||
+ | |||
+ | Пригодны ли сертификаты Let’s Encrypt для других целей, нежели SSL/TLS для сайтов? | ||
+ | |||
+ | **Ограничения Let’s Encrypt**: | ||
+ | - Основной лимит — количество регистраций сертификатов на один зарегистрированный домен не более 50 в неделю. Под зарегистрированный доменном подразумевается часть домена, | ||
+ | - Максимум 300 новых попыток регистрации на аккаунт за 3 часа. Новый регистрация создается каждый раз, когда вы запрашиваете сертификат у Boulder CA, то есть считаются и неудачные попытки. | ||
+ | - Продления обрабатываются особым образом: | ||
+ | - Максимум 10 учетных записей на один IP-адрес за 3 часа. Вы можете создать не более 500 учетных записей на диапазон IP-адресов в пределах IPv6/48 за 3 часа. | ||
+ | - Можно объединить несколько имен хостов в один SSL сертификат, | ||
+ | |||
+ | <panel type=" | ||
+ | |||
+ | |||
+ | Let’s Encrypt предлагает сертификаты с подтверждением домена (Domain Validation, DV), [[let_s_encrypt# | ||
+ | |||
+ | <panel type=" | ||
+ | |||
+ | Читайте руководство далее, если настраивайте сервер VPS/VDS, используя, | ||
+ | |||
+ | ===== Альтернатива Let’s Encrypt или Где получить SSL сертификат бесплатно ===== | ||
+ | |||
+ | - Бесплатные сертификаты от [[https:// | ||
+ | - Бесплатные сертификаты по протоколу ACME выдает норвежский Buypass (услуга BuyPass Go SSL). | ||
+ | - Бесплатные сертификаты [[out> | ||
+ | - **ZeroSSL** предоставляет бесплатный тариф — DV сертификат на 90 дней. Как и Free SSL, заявляют о 99,99% совместимости с серверами, | ||
+ | - **Free SSL Space** - некоммерческая организация, | ||
+ | - [[cloudflare|CloudFlare]] защищает сайты от DDoS-атак — моментов, | ||
+ | - У хостинг-провайдера или [[https:// | ||
+ | ===== Шаг 1: Инсталляция Certbot в Ubuntu с поддержкой Apache ===== | ||
+ | Certbot - это ACME (Automated Certificate Management Environment) - клиент для автоматического создания и установки сертификатов, | ||
+ | |||
+ | < | ||
+ | **Инсталляция Certbot** | ||
+ | |||
+ | Используйте генератор инструкций, | ||
+ | <btn type=" | ||
+ | </ | ||
+ | |||
+ | Настроим поддержку SSL в Apache с настройками HTTPS по умолчанию, | ||
+ | <file php> | ||
+ | sudo a2enmod ssl | ||
+ | sudo a2ensite default-ssl | ||
+ | sudo systemctl restart apache2 | ||
+ | </ | ||
+ | Проверить текущие настройки виртуальных хостов командой apachectl с ключом S. Вы должны увидеть как минимум 2 виртуальных хоста по умолчанию. | ||
+ | <file php> | ||
+ | # apachectl -S | ||
+ | </ | ||
+ | |||
+ | Ставим пакеты Certbot с поддержкой Nginx | ||
+ | <file php> | ||
+ | apt install certbot python3-certbot-nginx | ||
+ | </ | ||
+ | Теперь Certbot установлен на сервере. | ||
+ | |||
+ | Чтобы автоматически получить и настроить SSL для вашего веб-сервера, | ||
+ | |||
+ | ==== Полезные ключи Certbot ==== | ||
+ | * Вывести информацию об установленных SSL ключах | ||
+ | <file bash> | ||
+ | certbot certificates | ||
+ | </ | ||
+ | ===== Шаг 2: Как создать виртуальный домен Apache с поддержкой HTTP и HTTPS ===== | ||
+ | Как не странно процедура создания виртуального домена веб сервера Apache всегда вызывает вопросы. Но с другой стороны эта тривиальная задача в интернете описана с гигантским количество ошибок. | ||
+ | |||
+ | Ниже я описываю, | ||
+ | <file php> | ||
+ | sudo mkdir / | ||
+ | sudo chown -R $USER:$USER / | ||
+ | </ | ||
+ | <file php> | ||
+ | sudo chmod -R 755 / | ||
+ | </ | ||
+ | Создайте пустой index.html любым известным вам способом, | ||
+ | <file php> | ||
+ | sudo nano / | ||
+ | </ | ||
+ | Теперь необходимо создать конфигурационный файл виртуального хоста с правильными директивами, | ||
+ | <file php> | ||
+ | sudo nano / | ||
+ | </ | ||
+ | <file php> | ||
+ | < | ||
+ | ServerAdmin webmaster@localhost | ||
+ | ServerName your_domain | ||
+ | ServerAlias www.your_domain | ||
+ | DocumentRoot / | ||
+ | ErrorLog ${APACHE_LOG_DIR}/ | ||
+ | CustomLog ${APACHE_LOG_DIR}/ | ||
+ | </ | ||
+ | < | ||
+ | SSLEngine on | ||
+ | SSLCertificateFile | ||
+ | SSLCertificateKeyFile / | ||
+ | ServerAdmin | ||
+ | DocumentRoot / | ||
+ | ServerName your_domain | ||
+ | ErrorLog ${APACHE_LOG_DIR}/ | ||
+ | CustomLog ${APACHE_LOG_DIR}/ | ||
+ | </ | ||
+ | |||
+ | </ | ||
+ | |||
+ | Включим созданные виртуальный хост | ||
+ | <file php> | ||
+ | sudo a2ensite | ||
+ | </ | ||
+ | <file php> | ||
+ | sudo a2ensite your_domain.conf | ||
+ | </ | ||
+ | Если нужно, можно отключить хост по умолчанию, | ||
+ | <file php> | ||
+ | sudo a2dissite 000-default.conf | ||
+ | </ | ||
+ | Обязательно перегружаем Apache, чтобы он подхватил наши изменения | ||
+ | <file php> | ||
+ | sudo systemctl reload apache2 | ||
+ | </ | ||
+ | |||
+ | ===== Шаг 3: Получение сертификата SSL ===== | ||
+ | Введите следующую команду: | ||
+ | <file php> | ||
+ | sudo certbot --apache | ||
+ | </ | ||
+ | Скрипт certbot предложит вам ответить на ряд вопросов, | ||
+ | - Введите действующий адрес электронной почты, которая будет использоваться для уведомлений о продлении и безопасности: | ||
+ | - Подтвердите согласие с условиями обслуживания Let’s Encrypt: ведите А. | ||
+ | - Запрос на рассылку писем - нажмите Y (пусть спама в вашей жизни будет больше8-)), | ||
+ | - Наконец, | ||
+ | - Далее вам будет предложено выбрать, | ||
+ | |||
+ | **Поздравляю ваш сайт защищен!** | ||
+ | ===== Шаг 4: Автоматический перевыпуск сертификата SSL ===== | ||
+ | Сертификаты Let’s Encrypt действительны только в течение 90 дней. Установленный нами пакет certbot выполняет это автоматически, | ||
+ | |||
+ | Вы можете запросить статус таймера с помощью команды systemctl: | ||
+ | |||
+ | < | ||
+ | systemctl status certbot.timer | ||
+ | |||
+ | Output | ||
+ | ● certbot.timer - Run certbot twice daily | ||
+ | | ||
+ | | ||
+ | Trigger: Thu 2020-05-21 05:22:32 UTC; 9h left | ||
+ | | ||
+ | </ | ||
+ | Чтобы протестировать процесс обновления, | ||
+ | |||
+ | < | ||
+ | certbot renew --dry-run | ||
+ | </ | ||
+ | Если ошибок нет, все нормально. Certbot будет продлевать ваши сертификаты, | ||
+ | |||
+ | Логи перевыпуска SSL сертификатов Let’s Encrypt обычно находятся в этой папке / | ||
+ | |||
+ | Для версий скаченных с GitHub, понадобится другая настройка автоматического обновления. | ||
+ | |||
+ | Не забудьте настроить [[cron|cron]]: | ||
+ | <file bash> | ||
+ | sudo crontab -e | ||
+ | 0 5 * * 1 / | ||
+ | |||
+ | 15 1 * * * / | ||
+ | </ | ||
+ | |||
+ | ===== Шаг 5: Получение сертификата Wildcard SSL ===== | ||
+ | Let’s Encrypt начал выдавать Wildcard сертификаты c 14 марта 2018 года. | ||
+ | |||
+ | Wildcard SSL/TLS позволяет использовать неограниченное количество поддоменов одного и того же домена (не путать с SAN). Любой полный домен, соответствующий * .yourdomain.com (где * может быть любым словом, | ||
+ | |||
+ | <callout type=" | ||
+ | - Прежде чем получить Wildcard SSL сертификат, | ||
+ | *.example.com. 3600 IN A 185.253.219.218 | ||
+ | </ | ||
+ | |||
+ | Запускаем команду для создания нового SSL сертификата: | ||
+ | <file bash> | ||
+ | certbot certonly \ | ||
+ | --agree-tos \ | ||
+ | --email info@hoster.tips \ | ||
+ | --manual \ | ||
+ | --preferred-challenges=dns \ | ||
+ | -d example.com \ | ||
+ | -d *.example.com \ | ||
+ | --server https:// | ||
+ | </ | ||
+ | После выполнения команды вы получите запись TXT, которую необходимо добавить на свой DNS-сервер. Записи будут выглядеть следующим образом: | ||
+ | <file bash> | ||
+ | Please deploy a DNS TXT record under the name | ||
+ | _acme-challenge.example.com with the following value: | ||
+ | |||
+ | HejzlvXokaKoAq_xnr5LTplWbKYNScVH-ASy1vMYMGE | ||
+ | Before continuing, verify the record is deployed. | ||
+ | </ | ||
+ | Убедившись, | ||
+ | <file bash> | ||
+ | server { | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | } | ||
+ | |||
+ | server { | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | root / | ||
+ | index index.html; | ||
+ | | ||
+ | | ||
+ | | ||
+ | } | ||
+ | </ | ||
+ | Не забываем что команду создание сертификата нужен будет обновить через 3 месяца (срок жизни SSL), так же нужно будет обновлять DNS запись. | ||
+ | ====== ACME.sh альтернатива скрипту certbot ====== | ||
+ | |||
+ | < | ||
+ | |||
+ | Скрипт [[https:// | ||
+ | |||
+ | Преимущества acme.sh: | ||
+ | * acme.sh автоматически поддерживает валидацию через DNS, поддерживает много API различных провайдеров, | ||
+ | * Поддержка [[docker|docker-а]] «из коробки», | ||
+ | * Добавляет себя в cron для автоматического обновления сертификатов по таймеру. | ||
+ | * acme.sh скрипт может выполнить заданную команду после обновления сертификатов — очевидным применением является отправка команды веб-серверу на перезагрузку ключей. Есть ещё хуки для выполнения до и после запуска скрипта. | ||
+ | * Есть функции для автоматической загрузки ключей в различные хостинговые панели (типа [[hosting_control_panel_cpanel|cPanel]]) | ||
+ | Установка acme.sh | ||
+ | <file bash> | ||
+ | curl https:// | ||
+ | </ | ||
+ | В [[cron|cron]] на каждой ноде создаем правило: | ||
+ | <file bash> | ||
+ | 55 0 * * 6 "/ | ||
+ | </ | ||
+ | [[out> | ||
📌 Удобный подбор VPS по параметрам доступен на DIEGfinder.com - официальном инструменте проекта DIEG. Это часть единой экосистемы, созданной для того, чтобы помочь быстро найти подходящий VPS/VDS сервер для любых задач хостинга.
📌 Для тестирования скриптов, установщиков VPN и Python-ботов рекомендуем использовать надежные VPS на короткий срок. Подробнее о быстрой аренде VPS для экспериментов - читайте здесь.
💥 Подпишись в Телеграм 💥 и задай вопрос по сайтам и хостингам бесплатно!7 Самых Популярных Статей
- Как запустить скрипты и веб-приложения на Python
- Что такое страны TIER 1,2,3
- 7 способов сравнения файлов по содержимому в Windows или Linux
- Установка и тестирование веб-панели HestiaCP
- Nginx простые примеры конфигурации
- top, htop, atop определение загрузки ОС (Load average, LA)
- Использование rsync в примерах
7 Самых Популярных Обзоров
- Хостинг для Python-скриптов и приложений
- ТОП 4 лучших антидетект браузеров (Бесплатные & Платные)
- Подборка купонов (промокоды) на хостинг, антидетект браузеры
- Обзор THE.Hosting (PQ Hosting): надежный хостинг с профессиональной поддержкой
- Хостинг в России
- Хостинг в Европе
- Обзор браузера Dolphin {anty} для мультиаккаунтинга