Бесплатный SSL-сертификат шифрует соединение между вашими посетителями и вашим сайтом --- защищая пароли, платежи и персональные данные. Вы можете получить его примерно за 5 минут, не потратив ни копейки.
Кратко --- быстрая версия:
- Откройте gethttps.com/app/setup --- без установки, без аккаунта
- Введите имя вашего домена
- Подтвердите владение доменом (разместите файл на сервере или добавьте DNS-запись)
- Скачайте файлы сертификата
- Установите на сервер (Nginx, Apache, cPanel, WordPress, IIS)
Читайте дальше для полного руководства со всеми деталями.
Зачем нужен SSL-сертификат
Прежде чем начать --- если вы задаётесь вопросом, действительно ли вашему сайту нужен SSL:
- Браузеры помечают HTTP-сайты как “Не безопасно” --- Chrome, Firefox и Edge показывают предупреждение в адресной строке. Посетители уходят.
- Google использует HTTPS как фактор ранжирования --- с 2014 года. HTTP-сайты ранжируются ниже.
- Формы и логины передают данные открытым текстом без HTTPS --- любой в сети может прочитать пароли, номера кредитных карт, персональные данные.
- HTTP-страницы можно изменить при передаче --- провайдеры и злоумышленники могут внедрять рекламу, трекеры или вредоносное ПО на ваши страницы.
- HTTPS бесплатен --- нет причин его не использовать.
Если ваш сайт уже на HTTPS, можете перейти к продлению.
4 способа получить бесплатный SSL-сертификат
| Метод | Лучше всего для | Установка | Автопродление | Время |
|---|---|---|---|---|
| GetHTTPS (браузер) | Всех --- без установки, без доступа к серверу | Ручная | Нет | 5 мин |
| Ваш хостинг-провайдер | Виртуального хостинга с cPanel/Plesk | Автоматическая | Обычно да | 2 мин |
| Certbot (CLI) | Системных администраторов с root-доступом | Автоматическая | Да | 10 мин |
| Cloudflare (CDN) | Сайтов, уже использующих Cloudflare | Автоматическая | Да | 5 мин |
Это руководство сфокусировано на Методе 1 (GetHTTPS), потому что он работает везде --- на виртуальном хостинге, VPS, выделенном сервере или любой платформе, где вы можете загружать файлы. Для других методов смотрите ссылки выше.
Метод 1: GetHTTPS (рекомендуемый --- работает везде)
Предварительные требования
- Зарегистрированное доменное имя, указывающее на сервер, который вы контролируете
- Доступ к одному из следующих (для верификации домена):
- Файловая система вашего веб-сервера --- для размещения файла верификации (HTTP-01 challenge)
- DNS-настройки вашего домена --- для добавления TXT-записи (DNS-01 challenge)
- Современный браузер --- Chrome, Firefox, Edge или Safari
Какой тип проверки выбрать? HTTP-01 проще для большинства пользователей. DNS-01 обязателен для wildcard-сертификатов (
*.example.com). Смотрите наши руководства по HTTP-01 и DNS-01 для подробных объяснений.
Шаг 1: Откройте GetHTTPS
Перейдите на gethttps.com/app/setup.
GetHTTPS автоматически генерирует две пары ключей в вашем браузере:
- Ключ аккаунта --- пара ключей P-256 ECDSA, идентифицирующая ваш аккаунт Let’s Encrypt. Подписывает все ACME-запросы.
- Ключ сертификата --- пара ключей для вашего SSL-сертификата. ECDSA P-256 по умолчанию (рекомендуется) или RSA 2048.
Оба ключа создаются с помощью Web Crypto API, встроенного в ваш браузер. Они существуют только в памяти браузера и никогда не отправляются на какой-либо сервер --- даже на наш. Это ключевое преимущество конфиденциальности перед такими инструментами, как SSL For Free (генерирует ключи на своём сервере) или ZeroSSL (может генерировать ключи на стороне сервера в зависимости от метода).
Шаг 2: Добавьте ваши доменные имена
Введите домен(ы), которые хотите защитить:
| Что вы хотите | Что ввести | Примечания |
|---|---|---|
| Один домен | example.com | Самая базовая настройка |
| Домен + www | example.com + www.example.com | Рекомендуется для большинства сайтов |
| Wildcard | *.example.com | Покрывает все поддомены; требует DNS-01 |
| Несколько доменов | example.com + blog.example.com + shop.example.com | SAN-сертификат |
Совет: Если вы вводите example.com, GetHTTPS предложит также добавить www.example.com (и наоборот). Большинство сайтов должны защитить оба варианта.
Шаг 3: Пройдите верификацию домена
Let’s Encrypt должен убедиться, что вы контролируете домен. Выберите один из двух методов:
Вариант A: HTTP-01 challenge (проще, для большинства пользователей)
Let’s Encrypt предоставляет токен. Вы размещаете файл на вашем веб-сервере по определённому URL.
- GetHTTPS покажет вам имя файла и содержимое файла (длинную строку-токен)
- Создайте файл на сервере:
http://yourdomain.com/.well-known/acme-challenge/TOKEN_FILENAME - Файл должен быть доступен по HTTP (порт 80) --- даже если ваш сайт уже использует HTTPS
- Нажмите Verify в GetHTTPS
Как создать файл --- по платформам:
SSH-доступ (Nginx/Apache на Linux):
# Создайте директорию (если она не существует)
mkdir -p /var/www/html/.well-known/acme-challenge/
# Создайте файл проверки --- используйте ТОЧНЫЕ значения из GetHTTPS
echo "TOKEN_CONTENT_SHOWN_IN_GETHTTPS" > /var/www/html/.well-known/acme-challenge/TOKEN_FILENAME
# Проверьте доступность
curl http://yourdomain.com/.well-known/acme-challenge/TOKEN_FILENAME
cPanel File Manager:
- Перейдите в File Manager -> папка
public_html - Создайте папку
.well-known-> внутри неё создайтеacme-challenge - Создайте новый файл с именем токена, вставьте содержимое токена
- Убедитесь, что файл доступен для чтения (права 644)
FTP:
- Подключитесь через FTP к корневой директории сайта
- Перейдите в (или создайте)
.well-known/acme-challenge/ - Загрузите текстовый файл с именем токена, содержащий значение токена
Распространённая проблема: Некоторые веб-серверы по умолчанию не отдают файлы из
.well-known. Если вы получаете ошибку 404, проверьте конфигурацию сервера. Для Nginx может потребоватьсяlocation ~ /\.well-known { allow all; }в конфигурации.
Вариант B: DNS-01 challenge (обязателен для wildcard)
Вы добавляете TXT-запись в DNS-настройки вашего домена.
- GetHTTPS покажет вам имя записи (например,
_acme-challenge.example.com) и значение записи (длинный хеш) - Перейдите к вашему DNS-провайдеру и добавьте TXT-запись
- Дождитесь распространения DNS (обычно 1-5 минут)
- Нажмите Verify в GetHTTPS
Краткая справка по DNS-провайдерам:
| Провайдер | Где добавить TXT-запись | Настройка TTL |
|---|---|---|
| Cloudflare | DNS -> Records -> Add record -> Type: TXT | Auto |
| AWS Route 53 | Hosted zones -> ваш домен -> Create record -> TXT | 300 |
| GoDaddy | DNS Management -> Add -> Type: TXT | 1 Hour |
| Namecheap | Domain List -> Manage -> Advanced DNS -> Add new record -> TXT | Automatic |
| Google Domains | DNS -> Custom records -> Manage -> Create new record -> TXT | Auto |
| DigitalOcean | Networking -> Domains -> ваш домен -> Add record -> TXT | 30 |
Имя записи: _acme-challenge (некоторые провайдеры автоматически добавляют ваш домен, некоторые нет --- проверьте предпросмотр)
Значение записи: Хеш-строка, показанная в GetHTTPS (скопируйте и вставьте точно)
Предварительная проверка (эксклюзивная функция GetHTTPS)
Перед отправкой в Let’s Encrypt GetHTTPS предварительно проверяет конфигурацию вашей проверки из публичного интернета через DNS-over-HTTPS API Google. Это выявляет ошибки, такие как:
- Неправильное содержимое или права доступа файла
- Файл недоступен по порту 80
- DNS-запись ещё не распространилась
- Файрвол блокирует запрос
- Прокси Cloudflare перехватывает проверку
Если предварительная проверка не пройдена, GetHTTPS точно показывает, что не так --- чтобы вы могли исправить это до траты попытки rate limit.
Эта функция отсутствует у других браузерных инструментов. SSL For Free и ZeroSSL отправляют запрос напрямую в CA, и вы узнаёте об ошибках только постфактум.
Шаг 4: Скачайте файлы сертификата
После прохождения всех проверок Let’s Encrypt выпускает ваш сертификат. GetHTTPS предоставляет четыре файла:
| Файл | Что это | Когда нужен |
|---|---|---|
privkey.pem | Ваш приватный ключ --- храните в секрете! | Для любого сервера |
cert.pem | Ваш SSL-сертификат (только конечный) | Apache, некоторые конфигурации |
chain.pem | Промежуточный CA-сертификат Let’s Encrypt | Apache, некоторые конфигурации |
fullchain.pem | cert.pem + chain.pem вместе | Nginx, большинство серверов |
Скачайте все четыре файла. Разные серверы требуют разные комбинации --- имея все четыре, вы будете готовы. Подробнее в объяснении форматов сертификатов.
Безопасность: Храните
privkey.pemнадёжно. Любой, кто имеет этот файл, может выдать себя за ваш сайт. Не отправляйте его по email, не коммитьте в Git, не размещайте в публичной папке.
Шаг 5: Установите на сервер
Выберите вашу платформу:
| Платформа | Руководство | Необходимые файлы |
|---|---|---|
| Nginx | Полное руководство -> | fullchain.pem + privkey.pem |
| Apache | Полное руководство -> | cert.pem + chain.pem + privkey.pem |
| cPanel | Полное руководство -> | Вставьте содержимое всех трёх файлов |
| WordPress | Полное руководство -> | Зависит от хостинга (cPanel/Nginx/Apache) |
| Windows IIS | Полное руководство -> | Сначала конвертируйте в PFX |
| Docker | Полное руководство -> | Примонтируйте fullchain.pem + privkey.pem |
| Plesk | Полное руководство -> | Вставьте содержимое всех трёх файлов |
| AWS | Полное руководство -> | Загрузите на EC2 или импортируйте в ACM |
| Node.js | Полное руководство -> | fullchain.pem + privkey.pem в коде |
Быстрая установка --- Nginx:
server {
listen 443 ssl http2;
server_name example.com www.example.com;
ssl_certificate /etc/ssl/fullchain.pem;
ssl_certificate_key /etc/ssl/privkey.pem;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers off;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 1d;
add_header Strict-Transport-Security "max-age=63072000" always;
root /var/www/html;
index index.html;
}
sudo nginx -t && sudo systemctl reload nginx
Быстрая установка --- Apache:
<VirtualHost *:443>
ServerName example.com
ServerAlias www.example.com
SSLEngine on
SSLCertificateFile /etc/ssl/cert.pem
SSLCertificateKeyFile /etc/ssl/privkey.pem
SSLCertificateChainFile /etc/ssl/chain.pem
SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1
SSLHonorCipherOrder off
DocumentRoot /var/www/html
</VirtualHost>
sudo apachectl configtest && sudo systemctl reload apache2
Шаг 6: Перенаправьте HTTP на HTTPS
Принудительно направьте весь трафик через зашифрованное соединение. Без этого посетители на http:// не получают защиту вашего сертификата.
Nginx:
server {
listen 80;
server_name example.com www.example.com;
return 301 https://$host$request_uri;
}
Apache (.htaccess):
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Полное руководство по перенаправлению с www/без www, сценариями прокси и устранением неполадок ->
Шаг 7: Проверьте, что всё работает
Проверка в браузере:
- Откройте
https://yourdomain.com - Нажмите на значок замка -> “Сертификат” или “Соединение защищено”
- Убедитесь: выдан “Let’s Encrypt”, истекает через ~90 дней, домен совпадает
Проверка из командной строки:
# Показать детали сертификата
echo | openssl s_client -connect yourdomain.com:443 -servername yourdomain.com 2>/dev/null \
| openssl x509 -noout -subject -issuer -dates
# Ожидаемый результат:
# subject=CN=example.com
# issuer=C=US, O=Let's Encrypt, CN=R10
# notBefore=May 8 00:00:00 2026 GMT
# notAfter=Aug 6 00:00:00 2026 GMT
Онлайн-проверка: Введите ваш домен на SSL Labs Server Test для подробного отчёта, включающего цепочку сертификатов, поддержку протоколов, наборы шифров и известные уязвимости.
Проверка на смешанный контент: Откройте DevTools браузера (F12) -> вкладка Console. Ищите предупреждения “Mixed Content” --- это HTTP-ресурсы на вашей HTTPS-странице. Как исправить смешанный контент ->
Продление
Сертификаты Let’s Encrypt истекают через 90 дней. Продлевайте до 60-го дня, чтобы оставить запас.
С GetHTTPS (вручную):
- Снова откройте gethttps.com/app/setup
- Заново введите ваш(и) домен(ы) и пройдите новую проверку
- Замените файлы сертификата на сервере
- Перезагрузите веб-сервер (
sudo systemctl reload nginx)
С Certbot (автоматически): Если вы хотите автоматическое продление, установите Certbot на ваш сервер. Многие команды используют GetHTTPS для первого сертификата и Certbot для автоматического продления.
Полное руководство по продлению ->
Скоро: 47-дневные сертификаты. CA/Browser Forum проголосовал за сокращение максимального срока действия сертификатов до 47 дней к 2029 году. Что это значит для вас ->
Метод 2: Ваш хостинг-провайдер (самый простой, если доступен)
Многие хостинги включают бесплатный SSL:
| Хостинг | Как включить | Автопродление |
|---|---|---|
| Hostinger | hPanel -> Security -> SSL | ✅ AutoSSL |
| SiteGround | Site Tools -> Security -> SSL Manager | ✅ |
| Bluehost | My Sites -> Security -> SSL | ✅ |
| Namecheap | cPanel -> SSL/TLS Status | ✅ AutoSSL |
| GoDaddy | cPanel -> SSL/TLS (если cPanel-хостинг) | ✅ |
| DigitalOcean | Встроенного нет --- используйте Certbot или GetHTTPS | ❌ |
| AWS | ACM для балансировщиков нагрузки, Certbot для EC2 | ✅ (ACM) |
Если ваш хостинг предоставляет бесплатный SSL, используйте его --- это самый простой путь. Если нет (или если вы хотите больше контроля), используйте GetHTTPS.
Метод 3: Certbot (для системных администраторов)
Certbot --- это CLI-инструмент, автоматизирующий сертификаты Let’s Encrypt на вашем сервере. Требуется root-доступ.
# Установка (Ubuntu)
sudo snap install --classic certbot
sudo ln -s /snap/bin/certbot /usr/bin/certbot
# Получить сертификат + автоконфигурация Nginx
sudo certbot --nginx -d example.com -d www.example.com
# Автопродление настраивается автоматически
sudo systemctl list-timers | grep certbot
Полное сравнение GetHTTPS и Certbot ->
Метод 4: Cloudflare (SSL через прокси)
Если вы используете Cloudflare как CDN, Universal SSL включён бесплатно. Но учтите: SSL через Cloudflare означает, что ваш трафик расшифровывается на пограничных серверах Cloudflare, а не на вашем сервере. Подходит ли это вам? ->
Устранение неполадок
Файл проверки возвращает 404
- Проверьте путь: Файл должен быть точно по пути
/.well-known/acme-challenge/TOKEN--- не в подкаталоге - Проверьте права доступа: Файл должен быть читаемым веб-сервером (chmod 644)
- Nginx: Добавьте
location ~ /\.well-known { allow all; }, если ваша конфигурация блокирует dot-файлы - Cloudflare: Временно переключите DNS на “DNS only” (серое облако) во время HTTP-01 проверки
- cPanel: Убедитесь, что
.well-knownне скрыта --- некоторые файловые менеджеры скрывают dot-директории
DNS-запись не найдена
- Подождите дольше --- у некоторых DNS-провайдеров распространение занимает 5-15 минут
- Проверьте имя записи: Должно быть
_acme-challenge(с добавлением вашего домена или без --- зависит от провайдера). Предварительная проверка GetHTTPS подтвердит. - Проверьте тип записи: Должен быть TXT, не CNAME и не A
- Проверьте вручную:
dig TXT _acme-challenge.yourdomain.com +short
Ошибка “Too many requests” / лимит запросов
Let’s Encrypt разрешает 50 сертификатов на зарегистрированный домен в неделю. Если вы достигли этого лимита:
- Подождите неделю и попробуйте снова
- Используйте тестовое окружение (staging) для тестов (GetHTTPS по умолчанию использует staging в режиме разработки)
- Предварительно проверяйте ваши проверки перед отправкой, чтобы не тратить попытки
Браузер показывает “Не безопасно” после установки
- Сертификат не установлен: Проверьте, что конфигурация сервера указывает на правильные файлы
- Смешанный контент: Ваша страница загружает HTTP-ресурсы. Руководство по исправлению ->
- Перенаправление не активно: HTTP-трафик не перенаправляется на HTTPS. Руководство по перенаправлению ->
- Сертификат истёк: Проверить срок действия ->
Ошибка “Certificate chain incomplete”
Вы используете cert.pem вместо fullchain.pem (Nginx) или пропустили SSLCertificateChainFile (Apache). Серверу нужен промежуточный сертификат для подтверждения цепочки доверия.
Почему GetHTTPS, а не другие бесплатные инструменты?
| Функция | GetHTTPS | ZeroSSL | SSL For Free | Certbot |
|---|---|---|---|---|
| Установка | Не нужна (браузер) | Не нужна (веб) | Не нужна (веб) | Нужна установка CLI |
| Приватный ключ | Генерируется в браузере (Web Crypto) | ⚠️ Может генерироваться на сервере | ⚠️ Генерируется на сервере | Генерируется на сервере |
| Лимит бесплатных сертификатов | Без ограничений | 3 | 3 | Без ограничений |
| Wildcard (бесплатно) | ✅ | ❌ (платно) | ❌ | ✅ |
| Автопродление | ❌ | ❌ | ❌ | ✅ |
| Предварительная проверка | ✅ | ❌ | ❌ | ❌ |
| Открытый исходный код | Нет | Нет | Нет | Да (Apache 2.0) |
| Напрямую в Let’s Encrypt | ✅ | Через ZeroSSL | Через ZeroSSL | ✅ |
Полное сравнение всех бесплатных SSL-провайдеров ->
Часто задаваемые вопросы
Можно ли действительно получить SSL-сертификат бесплатно?
Да. Let’s Encrypt --- это некоммерческий Центр сертификации, поддерживаемый Mozilla, Google, EFF и другими организациями. Он выпускает бесплатные сертификаты с проверкой домена (DV) --- того же типа, за который многие компании платят $50-200 в год. Более 300 миллионов сайтов используют Let’s Encrypt, с долей мирового рынка CA в 63,9%.
Бесплатный SSL-сертификат так же безопасен, как платный?
Да. Все SSL-сертификаты --- бесплатные или платные --- используют одно и то же TLS-шифрование. Бесплатный DV-сертификат от Let’s Encrypt обеспечивает идентичную стойкость шифрования по сравнению с EV-сертификатом за $500 от DigiCert. Единственное различие --- уровень проверки (что CA проверяет о вашей личности), а не шифрование. Подробное сравнение ->
Как долго действует бесплатный SSL-сертификат?
Сертификаты Let’s Encrypt действительны 90 дней. Короткий срок действия --- это намеренно: он ограничивает ущерб при компрометации ключа и поощряет автоматизацию. Продлевайте на 60-й день, чтобы оставить запас. Примечание: к 2029 году все сертификаты будут ограничены 47 днями.
Нужен ли мне SSH/root-доступ к серверу?
Нет, с GetHTTPS. Вам нужна возможность выполнить одно из следующих действий:
- Разместить файл на веб-сервере (через FTP, cPanel File Manager или любым другим способом) --- для HTTP-01
- Добавить DNS-запись (через вашего регистратора доменов или DNS-провайдера) --- для DNS-01
Если у вас нет доступа вообще, проверьте, предлагает ли ваш хостинг-провайдер бесплатный SSL через панель управления.
Можно ли получить wildcard-сертификат бесплатно?
Да. GetHTTPS поддерживает wildcard-сертификаты (*.example.com) с использованием DNS-01 проверки. Эту функцию многие конкуренты (ZeroSSL, SSL For Free) ограничивают платными планами. Вам понадобится доступ к DNS-настройкам вашего домена.
Можно ли защитить несколько доменов одним сертификатом?
Да. Введите все ваши домены в GetHTTPS --- до 100 имён на сертификат. Это создаёт SAN (мультидоменный) сертификат. Каждый домен требует собственной верификации.
В чём разница между HTTP-01 и DNS-01 проверками?
HTTP-01: Вы размещаете файл на сервере. Проще, работает для отдельных доменов. Требует доступ к порту 80. DNS-01: Вы добавляете TXT-запись в DNS. Обязателен для wildcard. Работает, даже если порт 80 заблокирован. Подробное руководство по HTTP-01 -> | Руководство по DNS-01 ->
Что произойдёт, если мой сертификат истечёт?
Браузеры покажут полноэкранное предупреждение безопасности (“Ваше подключение не защищено”). Посетители не смогут безопасно зайти на ваш сайт, а поисковые системы могут деиндексировать ваши страницы. Как проверить срок действия -> | Как продлить ->
Можно ли перейти с GetHTTPS на Certbot (или наоборот)?
Да. Файлы сертификатов имеют стандартный формат PEM. Вы можете сгенерировать первый сертификат с GetHTTPS и позже установить Certbot для автоматического продления. Или сначала использовать Certbot и перейти на GetHTTPS, когда нужно быстро перевыпустить сертификат без доступа к серверу. Инструменты не конфликтуют друг с другом.