LINUX.ORG.RU
решено ФорумAdmin

Возможно ли получить сертификат let's encypt вручную без sudo?

 


0

1

Доброго времени суток

Сабж. Добавить для подтверждения страницу на сайт или запись в dns - без проблем. Запускать подозрительный скрипт с sudo - не пойдёт

update: да, я понимаю что сертификат на 90 дней. За эти дни или ишак сдохнет ( купят у обычного УЦ ), или эмир помрёт ( ИБ разрешит запустить ЭТО на продуктивном reverse proxy ), или я помру ( не хотелось бы :) )

★★★★★

Последнее исправление: router (всего исправлений: 2)

А кто мешает пускать тот же скрипт от нужных пользователей?
Права просто разрули.

Правда, непонятно, как ты без прав будешь сервер рестартить будешь или конфиг релоадить, но может тебе и не надо...

pekmop1024 ★★★★★
()

Можно. Главное не пользаваться «оффициальной» какашкой.

Hint: альтернативный непривмлированный порт, и проброс оного средствами fw или nginx.

beastie ★★★★★
()
Ответ на: комментарий от pekmop1024

А кто мешает пускать тот же скрипт от нужных пользователей?

официальный скрипт активно мешает:

nobody@vk:/opt/letencrypt$ ./letsencrypt-auto --manual --no-bootstrap certonly
Creating virtual environment...
Installing Python packages...
Installation succeeded.
Requesting root privileges to run certbot...
  /opt/letencrypt_home//.local/share/letsencrypt/bin/letsencrypt --manual --no-bootstrap certonly
[sudo] пароль для nobody:
Попробуйте ещё раз.
[sudo] пароль для nobody:
Попробуйте ещё раз.
[sudo] пароль для nobody:
sudo: 3 попытки ввода неправильного пароля
nobody@vk:/opt/letencrypt$
router ★★★★★
() автор топика
Ответ на: комментарий от beastie

Можно. Главное не пользаваться «оффициальной» какашкой.

Где взять альтернативный торт?

Hint: альтернативный непривмлированный порт, и проброс оного средствами fw или nginx.

Пока для меня официальный скрипт - чёрный ящик, прямо сейчас его читаю. До портов ещё не добрался

router ★★★★★
() автор топика

дык если его запускать напрямую, то sudo не нужно.

Главное, что все необходимые каталоги были созданы и у запускателя были права записи туда.

у меня letsencrypt выглядит

#!/home/lve/.local/share/letsencrypt/bin/python2.7

# -*- coding: utf-8 -*-
import re
import sys

from letsencrypt.main import main

if __name__ == '__main__':
    sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
    sys.exit(main())

А вот letsencrypt-auto, странная поделка, хочет su/sudo.

Но я периодически хочу избавится от этого шланга.

vel ★★★★★
()
Последнее исправление: vel (всего исправлений: 1)
Ответ на: комментарий от router

Клиентов к LE, как грязи (у меня даже где-то свой собственный есть).

Вот один из неплохих (входит btw в базовую поставку obsd): https://kristaps.bsd.lv/acme-client/

В догонку пример манипуляций с fw, чтобы привилегированный порт не использовать: https://www.dim13.org/zero-downtime-letsencrypt

beastie ★★★★★
()
Последнее исправление: beastie (всего исправлений: 1)

я какую-то утильку простецкую в сети находила. сишную. конпеляла и запускала её. там всё прозрачно и судо не нужен. рут нужен только для выкладывания сертификата, но это можно сделать вручную.

Iron_Bug ★★★★★
()
Ответ на: комментарий от beastie

у меня таблицы перенаправляли порты тупо.

Iron_Bug ★★★★★
()
Ответ на: комментарий от pekmop1024

Удваиваю! Сам пользуюсь - очень годная штука

Pinkbyte ★★★★★
()
Ответ на: комментарий от vel

дык если его запускать напрямую, то sudo не нужно.

Спасибо!

Для истории. На ubuntu 16.04

apt-get install python python-dev virtualenv gcc libaugeas0 libssl-dev openssl libffi-dev ca-certificates
cd /opt
export http_proxy='http://proxy:3128'
export https_proxy=$http_proxy

git clone https://github.com/letsencrypt/letsencrypt
mkdir /opt/letsencrypt_home
chown -R nobody /opt/letsencrypt /opt/letsencrypt_home
 
mkdir /var/log/letsencrypt /etc/letsencrypt /var/lib/letsencrypt
chown nobody /var/log/letsencrypt /etc/letsencrypt /var/lib/letsencrypt

Дальше от nobody. Не нужен ему ни root, ни sudo.

ok@vk:~$ sudo -u nobody /bin/bash
nobody@vk:~$ cd /opt/letencrypt
nobody@vk:/opt/letencrypt$ export HOME=/opt/letencrypt_home/
nobody@vk:/opt/letencrypt$ export http_proxy='http://proxy:3128'
nobody@vk:/opt/letencrypt$ export https_proxy=$http_proxy
nobody@vk:/opt/letencrypt$ export ftp_proxy=$http_proxy
 
nobody@vk:/opt/letencrypt$ ./letsencrypt-auto --manual --no-bootstrap certonly
Creating virtual environment...
Installing Python packages...
Installation succeeded.
Requesting root privileges to run certbot...
  /opt/letencrypt_home//.local/share/letsencrypt/bin/letsencrypt --manual --no-bootstrap certonly
[sudo] пароль для nobody:
Попробуйте ещё раз.
[sudo] пароль для nobody:
Попробуйте ещё раз.
[sudo] пароль для nobody:
sudo: 3 попытки ввода неправильного пароля
nobody@vk:/opt/letencrypt$

регистрация. нужна почта. потом её можно использовать для восстановления

nobody@vk:/opt/letencrypt$ /opt/letencrypt_home/.local/share/letsencrypt/bin/certbot --manual register

создание сертификатов. В процессе нужно будет добавить на сайт файлы с указанным именем и текстом

nobody@vk:/opt/letencrypt$ /opt/letencrypt_home/.local/share/letsencrypt/bin/certbot --manual certonly -d домен1 -d домен2

всё. что делать с сертификатом и ключом, все и так знают :)

router ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.