1. База знаний
  2. Сеть и серверы

Сертификаты

Acme.sh, выпуск, продление, подводные камни.

Пруфов: 16Обновлено 17.09.2026Исходник 2 мин чтения
  • Caddy auto-HTTPS — «кади сам создаёт ssl ключи» пруф; certbot/acme для остальных.
  • acme.sh (подготовка перед скриптами/панелью) 09.02.26:
apt update && apt upgrade -y
apt-get install cron socat
curl https://get.acme.sh/ | sh -s email=EMAIL && source ~/.bashrc
acme.sh --set-default-ca --server letsencrypt
# выпуск (standalone, alpn):
acme.sh --issue --standalone -d 'panel.domain' --key-file /opt/remnawave/nginx/privkey.key \
  --fullchain-file /opt/remnawave/nginx/fullchain.pem --alpn --tlsport 8443

Открыть 8443 (ufw allow 8443) для автообновления; ошибка «tcp port 80 is already used by nginx» — выключить nginx перед выпуском пруф.

  • Селфстил-сертификаты через certbot: apt install nginx certbot python3-certbot-nginx; certbot --nginx -d имя-домена 18.04.26; на 80 порт nginx, сертбот генерит и деплоит пруф.
  • certbot в docker для Hysteria2-ноды (Remnawave) 06.06.26:
services:
  certbot:
    container_name: certbot
    image: certbot/certbot
    network_mode: host
    volumes:
      - ./certs:/etc/letsencrypt
docker run --rm \
  -v $(pwd)/certs:/etc/letsencrypt \
  -v $(pwd)/var-lib-letsencrypt:/var/lib/letsencrypt \
  --network host \
  certbot/certbot certonly --standalone \
  --non-interactive --agree-tos \
  --email admin@your-domain.com \
  -d your-domain.com

Проброс в compose ноды: - '/opt/certbot/certs:/etc/letsencrypt:ro'; cron обновления: 0 0 28 * * cd /opt/certbot && docker compose run --rm certbot renew.

  • Xray tlsSettings не читает самоподписанный .pem (tls: bad certificate) — подписывать certbot'ом и указывать paths 27.05.26:
"streamSettings": {
  "network": "raw", "security": "tls",
  "tlsSettings": {
    "certificates": [{
      "keyFile": "/etc/letsencrypt/live/domain.domain/privkey.pem",
      "certificateFile": "/etc/letsencrypt/live/domain.domain/fullchain.pem"
    }],
    "rejectUnknownSni": false
  }
}
  • Пути сертов Caddy для xhttp-инбаунда: /certs/caddy/certificates/acme-v02.api.letsencrypt.org-directory/<домен>/{ключ.key,серт.crt} + volume selfsteel_caddy_data_selfsteal:/certs:ro 24.11.25.
  • Certwarden: сервер+клиент, серты по API обновляются сами, wildcard возможен пруф.
  • Wildcard нужен при селфстиле и DNS-балансировке пруф; скрипты синхронизации сертификатов TimeWeb/Hostkey API по крону пруф; acme.sh не шлёт письма о конце срока — поднимать мониторинг с алертами в TG пруф.
  • Yandex CDN: сертификат Let's Encrypt выпускается автоматически пруф.
  • Критика блог-гайда по certbot: серты в /opt/certbot/certs вместо /etc/letsencrypt; крон на renew раз в неделю ломается через 90 дней (LE рекомендует 1–2 раза в день) 19.07.26.
  • Выпуск серта для кабинета ломает панель (500) — панель: acme, кабина: certbot, не мешать пруф.
  • «На каждой ноде один и тот же серт, тупо перенести по sftp» 01.05.26.