Все руководства Руководство

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

GetHTTPS --- это браузерный ACME-клиент, который выпускает бесплатные HTTPS-сертификаты от Let’s Encrypt --- без серверного компонента.

Архитектура

Традиционные ACME-клиенты, такие как certbot и acme.sh, работают на вашем сервере. Они требуют доступа к оболочке, root-прав и, как правило, cron-задания для продления сертификатов.

GetHTTPS использует другой подход: всё работает во вкладке вашего браузера. Ваш приватный ключ генерируется локально с помощью Web Crypto API и никогда не покидает страницу.

Как работает процесс

  1. Генерация ключа аккаунта --- Пара ключей P-256 ECDSA создаётся в браузере с помощью crypto.subtle.generateKey(). Этот ключ идентифицирует ваш ACME-аккаунт.

  2. Регистрация аккаунта --- Открытый ключ регистрируется в ACME API Let’s Encrypt. Каждый запрос подписывается с помощью JWS (JSON Web Signature).

  3. Создание заказа --- Вы указываете, какие имена хостов должен покрывать сертификат. Let’s Encrypt возвращает набор проверок.

  4. Прохождение проверки --- Для каждого имени хоста вы проходите либо HTTP-01 проверку (размещаете файл на сервере), либо DNS-01 проверку (добавляете TXT-запись).

  5. Предварительная проверка --- Перед отправкой в Let’s Encrypt GetHTTPS проверяет конфигурацию вашей проверки из публичного интернета. Это выявляет опечатки до того, как они потратят попытку лимита запросов.

  6. Выпуск сертификата --- После прохождения проверок генерируется отдельная пара ключей сертификата, создаётся CSR (Certificate Signing Request), и заказ финализируется. Let’s Encrypt возвращает подписанную цепочку сертификатов.

  7. Скачивание --- Вы скачиваете privkey.pem, cert.pem, chain.pem и fullchain.pem и размещаете их на вашем сервере.

Модель безопасности

GetHTTPS спроектирован так, что даже мы не можем получить доступ к вашим приватным ключам.

Приватные ключи никогда не покидают браузер

Каждый ключ --- ключ аккаунта и ключ сертификата --- генерируется с помощью Web Crypto API браузера (crypto.subtle.generateKey()). Ключевой материал существует только в памяти JavaScript внутри вашей вкладки. Он никогда не сохраняется на диск, никогда не отправляется по сети и никогда не доступен для gethttps.com.

Когда вы нажимаете “Скачать”, PEM-файл создаётся на стороне клиента с помощью URL.createObjectURL() и передаётся вам как загрузка. Файл переходит из памяти в вашу файловую систему --- он никогда не попадает на наши серверы.

Без бэкенда, без прокси

Традиционные инструменты для сертификатов запускают серверный процесс. Это означает, что ваш приватный ключ существует на сервере, который вы, возможно, не контролируете.

GetHTTPS не имеет бэкенда. Сайт --- это статичные HTML, CSS и JavaScript. Ваш браузер отправляет ACME-запросы напрямую на acme-v02.api.letsencrypt.org. Мы не проксируем, не инспектируем и не логируем эти запросы.

Что мы видим и чего не видим

Мы видимМы не видим
Ваши приватные ключи✓ (только в браузере)
Ваши домены✓ (отправляются в Let’s Encrypt напрямую)
ACME-запросы✓ (браузер -> Let’s Encrypt)
Токены проверки✓ (генерируются в браузере)
Ваш email✓ (отправляется только в Let’s Encrypt)

DNS предварительные проверки

Для верификации проверки GetHTTPS запрашивает публичные DNS-резолверы (через DNS-over-HTTPS API Google). Эти запросы содержат только имя домена и ожидаемую TXT-запись --- никаких приватных данных.

Модель угроз

От чего мы защищаем:

  • Кража ключей через компрометацию сервера (нет сервера для компрометации)
  • Перехват ключевого материала посредником (ключи никогда не покидают вкладку)
  • Сбор данных (по умолчанию без аналитики, без логирования на бэкенде)

От чего мы не защищаем:

  • Скомпрометированный браузер (если ваш браузер скомпрометирован, все гарантии отменяются)
  • Скомпрометированный DNS-провайдер (если злоумышленник контролирует ваш DNS, он может выпускать сертификаты через DNS-01)
  • Расширения браузера, которые могут читать память страницы

А как насчёт продления?

Сертификаты Let’s Encrypt действительны 90 дней. Для продления вернитесь и пройдите тот же процесс. Ваш ключ аккаунта (если сохранён) будет распознан, поэтому повторная регистрация не потребуется.

Для автоматического продления рассмотрите серверный клиент, такой как certbot. GetHTTPS предназначен для ручного, разового выпуска, когда вам нужен полный контроль и прозрачность.

Получите бесплатный SSL-сертификат в браузере
Без установки, без аккаунта. Ваш приватный ключ никогда не покидает устройство.
Получить сертификат