SSL-сертификат для IP

Одна команда — и бесплатный доверенный HTTPS-сертификат Let's Encrypt для IP-адреса вашего сервера, без домена; устанавливается и продлевается автоматически.

Запустите от root на сервере

bash <(curl -sL ipk.me/ssl) -l ru 216.73.217.175
-l ruЯзык отчёта (как у этой страницы)
-4 / -6Только IPv4 или IPv6
-w /var/www/htmlПроверка через корневой каталог веб-сервера вместо временного сервера на порту 80
-r "systemctl reload nginx"Команда после каждого продления (по умолчанию: перезагрузить запущенный nginx / Apache / Caddy)
-d /etc/ssl/ipkКуда установить файлы сертификата
-yНе спрашивать перед остановкой веб-сервера на порту 80
--alpnПроверка через порт 443 (TLS-ALPN-01) вместо порта 80
--stagingТестовая среда Let's Encrypt (недоверенный сертификат, чтобы попробовать)
203.0.113.10 2001:db8::10IP-адреса для сертификата. Без них берётся исходящий IPv4 / IPv6 сервера; если публичных IP больше, скрипт спросит, какие включить

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

  • Встроенный лёгкий ACME-клиент (нужны только bash, openssl и curl; python3 — для временного сервера проверки) запрашивает сертификат с краткосрочным профилем Let's Encrypt: IP-сертификаты действуют около 6 дней и продлеваются каждые 3 дня.
  • Проверка идёт через порт 80 (HTTP-01), поэтому порт 80 этого IP должен быть доступен из интернета; перед выпуском ipk.me проверяет это снаружи.
  • Порт 80 заблокирован? Подойдёт и порт 443 (TLS-ALPN-01): добавьте --alpn; он выбирается и автоматически, если доступен только 443. IP-сертификаты нельзя проверить через DNS.
  • После выпуска выводятся пути к сертификату и ключу и срок действия; копия скрипта хранится в /etc/ssl/ipk, а в crontab добавляется ежедневная задача продления.
  • Если порт 80 / 443 занят nginx, Apache или Caddy, он останавливается на несколько секунд при выпуске и продлении; с -w этого можно избежать.
  • IPv4 и IPv6 попадают в один сертификат. Частные и CGNAT-адреса получить его не могут. В материковом Китае облачные провайдеры часто блокируют порт 80 на серверах без регистрации ICP.
  • Работает в Linux. На ipk.me отправляются только ваши IP-адреса; закрытый ключ не покидает сервер.
Русский