Можно ли получить SSL-сертификат для IP-адреса (например, https://203.0.113.50)? Да — но Let’s Encrypt не поддерживает это, и есть варианты лучше.
Кто может выпускать сертификаты для IP-адресов?
| CA | Сертификаты для IP-адресов | Стоимость |
|---|---|---|
| Let’s Encrypt | ❌ Не поддерживается | — |
| ZeroSSL | ✅ Через ACME (публичные IP) | Бесплатно (ограниченно) |
| Google Trust Services | ✅ Через ACME | Бесплатно |
| DigiCert | ✅ (только OV/EV) | Платно |
| Sectigo | ✅ | Платно |
| Самоподписанный | ✅ | Бесплатно (предупреждение браузера) |
Реализация ACME в Let’s Encrypt не валидирует IP-адреса — она валидирует только доменные имена. Это означает, что GetHTTPS не может выпускать сертификаты для IP-адресов.
Почему домены почти всегда лучше
| Сертификат для IP-адреса | Сертификат для домена | |
|---|---|---|
| Поддержка Let’s Encrypt | ❌ | ✅ |
| Бесплатные варианты | Ограничены | Без ограничений (Let’s Encrypt) |
| Можно сменить сервер | ❌ Привязан к конкретному IP | ✅ Обновить DNS |
| Читаемость | ❌ https://203.0.113.50 | ✅ https://example.com |
| CDN/балансировщик | ❌ Ломается при смене IP | ✅ Маршрутизация через DNS |
| SEO | ❌ Нет ценности ключевых слов | ✅ Брендируемый |
Почти в любом случае регистрация домена ($10-15/год) и использование Let’s Encrypt (бесплатно) дешевле и гибче, чем получение сертификата для IP-адреса.
Когда сертификаты для IP-адресов имеют смысл
- Внутренняя инфраструктура — панели мониторинга, административные панели, API в частной сети, где DNS не настроен
- IoT/встроенные устройства — устройства, которые подключаются к фиксированному IP и не могут разрешать DNS
- Разработка/тестирование — быстрый HTTPS на тестовом сервере без настройки DNS
- Устаревшие системы — приложения, жёстко закодированные на подключение к IP
Альтернативы сертификатам для IP-адресов
Вариант 1: Использовать домен (рекомендуется)
Зарегистрируйте домен или поддомен, направьте его на ваш IP, получите бесплатный сертификат Let’s Encrypt.
# Пример: направить поддомен на ваш IP
server.example.com → A record → 203.0.113.50
# Затем получить сертификат для server.example.com
Стоимость: $0 (если у вас уже есть домен) до $10-15/год (новый домен).
Вариант 2: Самоподписанный сертификат
Для внутреннего использования, где предупреждения браузера приемлемы:
openssl req -x509 -newkey ec -pkeyopt ec_paramgen_curve:P-256 \
-keyout key.pem -out cert.pem -days 365 -nodes \
-subj "/CN=203.0.113.50" \
-addext "subjectAltName=IP:203.0.113.50"
Обратите внимание на префикс IP: в SAN — не DNS:.
Вариант 3: nip.io или sslip.io (хитрый трюк с DNS)
Эти бесплатные сервисы предоставляют DNS-записи, которые разрешаются в IP-адрес, встроенный в имя хоста:
203.0.113.50.nip.io → разрешается в 203.0.113.50
Затем вы можете получить сертификат Let’s Encrypt для 203.0.113.50.nip.io, используя GetHTTPS с проверкой DNS-01. Домен выглядит некрасиво, но функционален.
Вариант 4: Cloudflare Tunnel
Откройте доступ к вашему сервису на базе IP через туннель Cloudflare с реальным доменом и автоматическим SSL — публичный IP не нужен.
Часто задаваемые вопросы
Почему Let’s Encrypt не поддерживает IP-адреса?
Let’s Encrypt проверяет владение доменом через DNS- или HTTP-проверки. У IP-адресов нет владения через DNS в том же смысле — модель валидации не применима напрямую. Другие CA (ZeroSSL, Google Trust Services) добавили поддержку IP в свои реализации ACME.
Можно ли использовать wildcard-сертификат для IP-адресов?
Нет. Wildcard-сертификаты применяются только к DNS-именам (*.example.com). У IP-адресов нет поддоменов.
А как насчёт частных/внутренних IP (192.168.x.x, 10.x.x.x)?
Ни один публичный CA не выпустит сертификат для частного IP-адреса — они не являются глобально уникальными. Используйте самоподписанный сертификат или частный CA для внутренних сетей.
Можно ли получить бесплатный сертификат для публичного IP?
ZeroSSL и Google Trust Services поддерживают сертификаты для IP-адресов через ACME. Однако бесплатный тариф может быть ограничен. Домен с Let’s Encrypt надёжнее и действительно без ограничений.