Перейти к основному содержанию
Сертификат нужен, чтобы сайт на твоём сервере открывался по HTTPS. Сервер под VPN или софт без сайта – SSL, скорее всего, не нужен.

Варианты

  • Universal SSL – автоматически в Cloudflare, шифрует «браузер ↔ Cloudflare».
  • CF Origin CA – бесплатный сертификат Cloudflare для сервера на 15 лет, шифрует «Cloudflare ↔ сервер».
  • Let’s Encrypt – публичный сертификат для сервера на 90 дней, с автопродлением.
Для рабочего сайта: Let’s Encrypt на сервере и режим Full (strict) в настройках Cloudflare, тогда трафик зашифрован от браузера до сервера.

Установка

Подключись по SSH под root: Подключение. Команды для Ubuntu, она стоит по умолчанию. Перед установкой проверь:
  1. Обнови систему:
  2. Установи certbot – для Apache вместо python3-certbot-nginx ставь python3-certbot-apache:
  3. Получи сертификат – certbot выпустит его и сам пропишет в конфиг Nginx. Для Apache замени --nginx на --apache:
    Только файлы, без правки конфига: sudo certbot certonly --nginx -d example.com -d www.example.com. Они лягут в /etc/letsencrypt/live/example.com/.

Продление

Сертификат действует 90 дней, certbot сам ставит системный таймер автопродления. Проверка:

Wildcard

Сертификат на *.example.com выдаётся только через DNS-проверку:
Certbot попросит создать TXT-запись _acme-challenge в DNS домена. Дождись, пока запись разойдётся, и только потом нажми Enter. Сам такой сертификат не продлится: повтори команду до конца 90 дней.

Ошибки

  • Timeout – закрыт порт 80, открой его в файрволе.
  • Domain not found – A-запись ещё не разошлась: подожди и проверь DNS.
  • Connection refused – nginx или apache не запущен: sudo systemctl start nginx.
  • Rate limit – слишком много запросов, подожди. Лимит: 5 неудач в час, 50 сертификатов на домен в неделю.
Дальше: Веб-сервер, Защита сервера.