Показаны сообщения с ярлыком letsencrypt. Показать все сообщения
Показаны сообщения с ярлыком letsencrypt. Показать все сообщения

вторник, 18 июля 2023 г.

Переход с letsencrypt на acme.sh

 Вдруг перестал работать (ошибка ссл) один старый сайт...

Your system is not supported by certbot-auto anymore.
Certbot cannot be installed.

Да, система старовата...

Description:    Debian GNU/Linux 7.11 (wheezy)

Тем не менее, надо починить. Цертбот славится своими странными зависимостями, которые на такой старой системе вряд ли удастся решить, а гит версия - там какая-то каша, certbot-auto удалён, похоже требуется свежий питон (не просто 3, а типа 3.5+).. В общем, пора закопать стюардессу.

https://github.com/acmesh-official/acme.sh/wiki

https://github.com/acmesh-official/acme.sh/wiki/How-to-install

При установке спрашивает почту, не используйте дефолтный my@example.com - не заработает! будет

"detail": "Error creating new account :: invalid contact domain. Contact emails @example.com are forbidden",

Дальше выписывать нужно типа так

/root/.acme.sh/acme.sh  --issue  --standalone  -d <DOMAIN>

но у меня в логе было

 Create new order error. Le_OrderFinalize not found. {"type":"urn:ietf:params:acme:error:unauthorized","status":401,"detail":"A requested identifier is not permitted [ххх.ru]"}

Непонятно, фикс или случайность, но помогло

./acme.sh --debug --log --set-default-ca --server letsencrypt

https://wiki.vps-server.ru/doku.php/wiki:other:lets_encrypt_errors

И судя по

acme.sh uses zerossl (under setigo) as default ca, which blockes all .ru domain. LE doesn't so change CA

https://community.letsencrypt.org/t/acme-sh-error-issuing-certificates-for-ru-zone/195388/2

это действие обязательно.

В общем, дальше

acme.sh --issue -d ххх.ru -d www.ххх.ru --webroot /var/www/ххх/data/www/ххх.ru --nginx

и всё выписало успешно.

Посмотреть список сертификатов:

acme.sh --list


вторник, 2 мая 2023 г.

Методы обновления сертификатов lets encrypt (certbot)

 Классика:

certbot renew

но есть и готовый сервис

systemctl status certbot.timer

...
   Triggers: ● certbot.service

systemctl status certbot
○ certbot.service - Certbot
     Loaded: loaded (/lib/systemd/system/certbot.service; static)
     Active: inactive (dead) since Tue 2023-05-02 13:11:37 MSK; 1s ago
TriggeredBy: ● certbot.timer

Сервис, запускаемый по таймеру и обновляющий сертификаты.

Но нужно проверять: бывает что certbot renew работает, а сервис завершается с ошибкой.

PS можно доработать сервис (edit --full) и добавить в Exec в конец
--post-hook "nginx -t && systemctl reload nginx"
тогда не надо ничего придумывать с перезапуском nginx. При необходимости заменить на нужный сервис.

воскресенье, 27 ноября 2022 г.

edgecenter/gcore certbot plugin

1) git clone https://github.com/G-Core/gcore-dns-certbot-plugin

2) https://accounts.edgecenter.ru/profile/api-tokens

и добавляем токен, на данный момент достаточно уровня User

3) cd gcore-dns-certbot-plugin

vim gcore.ini

# G-Core API token used by Certbot
dns_gcore_apitoken = 000xxx

4) 

sed -i'' -e 's/gcorelabs.com/edgecenter.ru/g' certbot_dns_gcore/api_gcore.py

ИЛИ

dns_gcore_api_url = https://api.edgecenter.ru
5) получаем
certbot certonly --authenticator dns-gcore --dns-gcore-credentials=./gcore.ini -d 'example.com'

6) продлеваем
certbot renew --authenticator dns-gcore --dns-gcore-credentials=./gcore.ini

понедельник, 29 августа 2022 г.

про серты LE

 Для большинства баян, но.. если стоит очень старая система и не принимает даже валидные LE серты

curl: (60) SSL certificate problem: certificate has expired

sudo apt install -y ca-certificates
sudo sed -i '/^mozilla\/DST_Root_CA_X3.crt$/ s/^/!/' /etc/ca-certificates.conf
sudo update-ca-certificates

https://stackoverflow.com/questions/69408776/how-to-force-older-debian-to-forget-about-dst-root-ca-x3-expiration-and-use-isrg

пятница, 18 января 2019 г.

letsencrypt wildcard

Letsecrypt c 13 марта 2018 года уже умеет wildcard сертификаты, но пока только с верификацией через dns (до сих пор)
https://medium.com/@saurabh6790/generate-wildcard-ssl-certificate-using-lets-encrypt-certbot-273e432794d7

https://blogs.msdn.microsoft.com/mihansen/2018/03/15/creating-wildcard-ssl-certificates-with-lets-encrypt/
https://kostikov.co/pereezzhaem-na-wildcard-sertifikaty-lets-encrypt

UPD
Пример использования с яндексом
https://github.com/actionm/certbot-dns-pddyandex
НО: яндекс можно сказать не работает
https://goodprogrammist.ru/posts/dns-yandex-bag/
Чтобы наверняка сработало, надо ставить ожидание записи несколько часов, можно сутки. Час - работает примерно никогда.

и памятка, строка для генерации по доке выглядит так


./letsencrypt-auto certonly --manual-public-ip-logging-ok --agree-tos --email info@site.com --renew-by-default -d site.com -d *.site.com --manual --manual-auth-hook ../certbot-dns-pddyandex/authenticator.sh --manual-cleanup-hook ../certbot-dns-pddyandex/cleanup.sh --preferred-challenges dns-01 --server https://acme-v02.api.letsencrypt.org/directory

среда, 17 января 2018 г.

debian: ispmanager 4 + letsencrypt

Есть штатный модуль интеграции, но он доступен только с версии 5.65, а нам надо под более адекватную 4 версию.
Можно конечно поставить сервис, сгенерировать сертификаты, скопировать их из файлов и добавить через панель, а потом каждые 2 месяца обновлять... Но можно сделать проще!

вторник, 24 января 2017 г.

CentOS: requests и как всегда древний софт

Суть в том, что в центоси весь софт древний как говно мамонта, и как итог - в том числе проблемы с LetsEncrypt сертификатами.
Для частичного решения данной проблемы есть пакет
https://pypi.python.org/pypi/certifi

Certifi is a carefully curated collection of Root Certificates for validating the trustworthiness of SSL certificates while verifying the identity of TLS hosts. It has been extracted from the Requests project.

Можно ставить через pip, но любителям делать всё централизованно - стоит найти .src.rpm и обновлять для себя. Пример - тут
https://packages.temboard.io/yum/srpms/rhel7/python-certifi-2016.2.28-1.el7.centos.src.rpm

пятница, 30 декабря 2016 г.

Осваиваем letsencrypt

Начать лучше отсюда
https://certbot.eff.org/
и можно заглянуть сюда
https://certbot.eff.org/docs/

Там же есть оф клиент, которым можно сделать запрос. При этом если для centos 7 прямо в epel лежит certbot, то под 6 надо качать скрипт-установщик.

Также есть аналоги типа dehydrated, пример запуска тут:
https://habrahabr.ru/post/304174/
Особенность - из зависимостей только curl и openssl, тогда как оф версия тянет два десятка питоновых либ.

Принцип работы - указываем домен(ы), которые надо подписать, и куда класть проверочный файл, путь будет вида /.well-known/acme-challenge/(длинная строка)
Для апача прямо на сайте есть примеры конфигурации и скрипт умеет "донастроить" апач, также есть режим standalone, когда запустится веб сервер с нужным доменом. Несовместимо с другими серверами на порту 80, и запрашиваемый домен должен вести на тот же сервер, где и запустили утилиту.
С nginx нужно чуть больше работы - или указывать --webroot -w (путь к root проекта), или добавить location /.well-known в нужное место.
Итог искать в /etc/letsencrypt/live/ (с оф клиентом)

Также есть вариант подтверждения через dns, есть в документации.

В дальнейшем запускаем с опцией renew, и оно обновит все сертификаты. Но nginx перезапускать через -s reload недостаточно, надо service nginx reload, а иногда и вообще рестарт.