Увійти Реєстрація
Блог Серії
Кар'єра
Вакансії Компанії
Навчання
Документація Співбесіди Тестування Відео
Екосистема
Пакети Ресурси Проєкти Інструменти Події
Інше
Про нас Реклама

Як налаштувати TLS на сервері і автоматизувати оновлення сертифікатів?

Сертифікати - найчастіше від Let's Encrypt (безкоштовні, на 90 днів) через протокол ACME. Короткий термін - свідомий вибір: компрометований сертифікат швидше перестає діяти, а автоматизація стає обов'язковою.

Автоматизація замість ручного оновлення:

  • Caddy чи FrankenPHP отримують і оновлюють сертифікати автоматично, без жодних налаштувань;
  • Certbot з таймером systemd для Nginx/Apache;
  • хмарні балансувальники й CDN (Cloudflare, AWS) керують сертифікатами самі.

Прострочений сертифікат - одна з найпоширеніших причин «падіння» сайту, тому навіть з автоматизацією потрібен моніторинг терміну дії зі сповіщенням за 2-3 тижні.

Конфігурація TLS - не вигадувати власну, а брати перевірену: Mozilla SSL Configuration Generator генерує налаштування для Nginx, Apache, HAProxy під профіль:

  • Modern - лише TLS 1.3 (сучасні клієнти);
  • Intermediate - TLS 1.2 і 1.3 з надійними шифрами (рекомендований для більшості сайтів);
  • Old - для дуже старих клієнтів (уникати).

Що має бути в налаштуваннях:

  • вимкнені SSL 3.0, TLS 1.0 і 1.1;
  • шифри з прямою секретністю (ECDHE) і AEAD (AES-GCM, ChaCha20-Poly1305);
  • HSTS (Strict-Transport-Security) після того, як HTTPS працює стабільно;
  • редирект з HTTP на HTTPS для сайту (для API - краще відмова);
  • OCSP stapling - якщо CA його підтримує (Let's Encrypt відмовляється від OCSP на користь коротших сертифікатів і CRL).

Перевірка: SSL Labs Server Test (оцінка A/A+), testssl.sh для внутрішніх серверів.

Внутрішній трафік: TLS, що закінчується на балансувальнику чи Cloudflare, лишає незашифрованим шлях до сервера застосунку. Для Cloudflare - режим Full (strict) з сертифікатом на сервері (зокрема безкоштовним Origin CA), а не Flexible, де трафік до origin іде по HTTP.

Приватні ключі - доступні лише процесу вебсервера, не в репозиторії, не в бекапах без шифрування.

Докладніше в документації: Mozilla SSL Configuration Generator

Перевір себе

20 випадкових питань за спробу, після завершення - розбір кожної помилки

Схожі питання