Я ищу автоматизированный способ добавления нового домена.

Я хотел бы добавить erzgebirgstraverse.de

Из https://certbot.eff.org/docs/using.html#changing-a-certificate-s-domains :

... чтобы расширить набор доменов, которые содержит сертификат...

certbot certonly --cert-name example.com -d example.org,www.example.org

Я нашел способ перечислить все существующие сертификаты:

hz1:/etc/apache2# certbot certificates
Saving debug log to /var/log/letsencrypt/letsencrypt.log

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Found the following certs:
  Certificate Name: hz1.yz.to
    Serial Number: 345a3c36ff032d325e78120c98d8ddc71f7
    Domains: hz1.yz.to thomas-guettler.de
    Expiry Date: 2021-03-23 09:19:00+00:00 (VALID: 80 days)
    Certificate Path: /etc/letsencrypt/live/hz1.yz.to/fullchain.pem
    Private Key Path: /etc/letsencrypt/live/hz1.yz.to/privkey.pem
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Сейчас я вижу существующие домены и могу добавить erzgebirgstraverse.de с флагом -d:

hz1:/etc/apache2# certbot certonly --cert-name hz1.yz.to -d hz1.yz.to,thomas-guettler.de,erzgebirgstraverse.de

Но теперь запускается интерактивный сценарий:

Saving debug log to /var/log/letsencrypt/letsencrypt.log

How would you like to authenticate with the ACME CA?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: Apache Web Server plugin (apache)
2: Spin up a temporary webserver (standalone)
3: Place files in webroot directory (webroot)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate number [1-3] then [enter] (press 'c' to cancel): 
systemctl reload apache2

Есть ли способ добавить новый домен (альтернативное имя), но неинтерактивный?

guettli

Ответов: 2

Ответы (2)

По умолчанию Certbot попытается помочь вам в процессе генерации сертификатов. Кроме того, он будет запрашивать информацию, чтобы помочь вам установить их в вашей установке Apache/Nginx.

Чтобы пропустить этот шаг установки, просто используйте подкоманду certbot certonly .... Согласно руководству CLI: Получить или обновить сертификат, но не устанавливать его

В качестве альтернативы вы можете использовать флаг -n/--non-interactive, чтобы убедиться, что certbot будет работать без каких-либо запросов. В этом случае вы должны убедиться, что вся необходимая информация передана через командную строку. В частности, вы должны убедиться, что вы уже согласились с условиями (--agree-tos) и указали действительный контактный email (-m email@domain). Пример:

certbot certonly --agree-tos -m contact&mydomain.com --cert-name hz1.yz.to -d hz1.yz.to,thomas-guettler.de,erzgebirgstraverse.de

В ваших вопросах вам было предложено указать метод аутентификации. Вы должны понимать, что let's encrypt должен подтвердить, что сервер, на котором вы выполняете клиент, может быть правильно связан с доменом (доменами), для которого вы пытаетесь сгенерировать свои сертификаты. Доступны следующие методы:

  1. Плагин для веб-сервера Apache (apache) -> certbot создаст настройки apache, чтобы HTTP-запрос можно было использовать для проверки того, что домены действительно связаны с вашим сервером
  2. .
  3. Запустить временный веб-сервер (standalone) -> Certbot запустит свой собственный веб-сервер для выполнения HTTP-запроса. Это может работать только в том случае, если никакой другой веб-сервер не прослушивает порт 80 (apache & nginx будет прослушивать этот адрес). Этот метод, вероятно, бесполезен в большинстве серверов
  4. .
  5. Поместить файлы в каталог webroot (webroot) -> Если у вас уже есть HTTP-сервер, слушающий порт 80, вы можете дать команду certbot поместить файл в каталог webroot, чтобы можно было использовать HTTP-запрос.

Чтобы предварительно выбрать один из 3 доступных методов из командной строки (и избежать интерактивной подсказки), используйте опцию --apache (1), --standalone (2) или --webroot (3).

Не забывайте, что HTTP-запрос - это не единственное решение для проверки согласованности вашего сервера/доменов. DNS и TLS вызовы могут быть очень полезны: https://letsencrypt.org/docs/challenge-types/ Я не уверен, что certbot реализует такие вызовы нативно, но вы можете найти сторонние плагины, которые это сделают.

В дополнение, подумайте, что certbot - НЕ единственный клиент let's encrypt, доступный для генерации ваших сертификатов. Существует множество клиентов: https://letsencrypt.org/docs/client-options/

Вам потребуется минимум: --non-interactive, --agree-tos, и -m 'you@your-email.com'. Это позволит certbot работать без какого-либо взаимодействия.

В дополнение к этому может быть полезно указать --nginx или --apache, если это подходит для вашей конфигурации (не уточнил, какой это тип веб-сервера), или certonly --manual, если вам действительно нужен только сертификат.

Примером готовой команды для выполнения того, что вы ищете (предполагается, что здесь используется nginx), является: certbot --nginx --non-interactive --agree-tos -m 'you@your-email.com' -d 'erzgebirgstraverse.de'

Заметим, что все это указано (несколько окольным путем) в https://certbot.eff.org/docs/using.html

.

2022 WebDevInsider