Содержание
Ресурсы
- https://m.ac/letsencrypt-ip-certificate/ – статья по настройке
- https://letsencrypt.org/2026/01/15/6day-and-ip-general-availability – описание сертификата, оф.
- https://letsencrypt.org/docs/profiles/#identifier-types – профили сертификатов
Этапы настройки. Получение SSL сертификата для IP 201.453.65.117
201.453.65.117 – IP взят из головы для наглядного примера. Замените на свой при настройке.
1. Обновите acme.sh
~/.acme.sh/acme.sh --upgrade
2. Настройте NGINX для порта 80
Отредактируйте /etc/nginx/sites-available/default. Через ftp или nano
sudo nano /etc/nginx/sites-available/default
Замените содержимое на:
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name _;
location ~ ^/.well-known/(acme-challenge|pki-validation)/ {
add_header Content-Type text/plain;
root /var/www/letsencrypt;
}
location / {
return 301 https://$host$request_uri;
}
}Создайте необходимые директории и перезагрузите NGINX:
sudo mkdir -p /var/www/letsencrypt sudo mkdir -p /etc/nginx/ssl sudo nginx -t sudo nginx -s reload
3. Получите сертификат для IP
~/.acme.sh/acme.sh --issue --server letsencrypt \ -d 201.453.65.117 \ -w /var/www/letsencrypt \ --certificate-profile shortlived \ --days 3
-w /var/www/letsencrypt. Параметр -w (или --webroot) указывает клиенту acme.sh путь к папке, в которую ваш веб-сервер (например, Nginx или Apache) разрешает записывать и читать файлы.
--certificate-profile shortlived. Здесь указываем тип сертификата, в нашем случае shortlived подходящий для настройки ssl для ip сервера
--days 3. Указываем значение, через сколько дней будет обновляться сертификат
Обратите внимание, что для сертификатов IP-адресов требуется профиль с коротким сроком действия acme.sh . Let’s Encrypt ограничивает срок действия сертификата IP-адреса 6,66666 днями (160 часами), поэтому ему необходимо чаще проверять наличие обновлений. Настройка --days 3 гарантирует проверку на обновление каждые 3 дня. Вы можете установить это значение равным 4 или 5, но избегайте установки значения 6 или выше, так как сертификат может истечь до обновления.
После успешного выполнения вы увидите результат, похожий на следующий:
-----BEGIN CERTIFICATE-----
MIIDTTCCAtOgAwIBAgISB...
...
YNzpD1ligLWublURJM70SPswarQfHyNGcqQATBTh8QIwUZadgZbPS0cs+8cgomx3
S1qrw60gA1HnEJPCKLff8W2rmaeW11x+Q1Lzv7kfJTqt
-----END CERTIFICATE-----
[Tue Feb 17 23:52:35 UTC 2026] Your cert is in: /root/.acme.sh/201.453.65.117_ecc/201.453.65.117.cer
[Tue Feb 17 23:52:35 UTC 2026] Your cert key is in: /root/.acme.sh/201.453.65.117_ecc/201.453.65.117.key
[Tue Feb 17 23:52:35 UTC 2026] The intermediate CA cert is in: /root/.acme.sh/201.453.65.117_ecc/ca.cer
[Tue Feb 17 23:52:35 UTC 2026] And the full-chain cert is in: /root/.acme.sh/201.453.65.117_ecc/fullchain.cer
4. Установите сертификат
~/.acme.sh/acme.sh --install-cert -d 201.453.65.117 \ --key-file /etc/nginx/ssl/ip.key \ --fullchain-file /etc/nginx/ssl/ip.crt \ --ca-file /etc/nginx/ssl/ip.ca.crt \ --reloadcmd "sudo systemctl restart nginx"
5. Настройте NGINX для порта 443
Добавьте в /etc/nginx/sites-available/default:
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name _;
location ~ ^/.well-known/(acme-challenge|pki-validation)/ {
add_header Content-Type text/plain;
root /var/www/letsencrypt;
}
location / {
return 301 https://$host$request_uri;
}
}
server {
listen 443 ssl http2 default_server;
listen [::]:443 ssl http2 default_server;
server_name _;
return 403;
ssl_protocols TLSv1.3 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
ssl_certificate /etc/nginx/ssl/ip.crt;
ssl_certificate_key /etc/nginx/ssl/ip.key;
}Настройки NGINX файла могут отличатся.
Проверьте и перезагрузите:
sudo nginx -t sudo systemctl restart nginx
Готово! Теперь открытие 201.453.65.117 в браузере будет через https.
Важные заметки
- Сертификат будет обновляться автоматически через acme.sh
- Проверяйте логи:
~/.acme.sh/acme.sh.log
- Сертификат живёт примерно 6,67 дней (160 часов), поэтому обновление каждые 3 дня обязательно
