Сертификаты
Acme.sh, выпуск, продление, подводные камни.
- 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/letsencryptdocker 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}+ volumeselfsteel_caddy_data_selfsteal:/certs:ro24.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.