Automati c способ обновления сертификатов для website.com и * .website.com - PullRequest
0 голосов
/ 01 апреля 2020

У меня есть веб-сервер, на котором я применяю различные правила перезаписи, чтобы перенаправить все http(s)://*.website.com запросы на один и тот же URL: https://website.com. Все работает нормально, как и ожидалось.

Теперь я бы хотел обновить сертификаты (созданные letsencrypt) автоматически c.

К сожалению, на данный момент Я должен сделать это вручную, и в идеале это должен быть простой скрипт, вызываемый из crontab (я хотел бы обновлять сертификаты каждые 2 месяца).

В настоящее время я использую следующий скрипт certbot-auto (из https://github.com/certbot/certbot/blob/master/certbot-auto) следующим образом:

./certbot-auto certonly --no-bootstrap --no-self-upgrade --renew-by-default -d website.com -d *.website.com --manual --preferred-challenges dns-01 --server https://acme-v02.api.letsencrypt.org/directory --rsa-key-size 4096

Вот вывод, который я получаю из этой команды:

Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator manual, Installer None
Attempting to parse the version 1.2.0 renewal configuration file found at /etc/letsencrypt/renewal/website.com.conf with version 0.31.0 of Certbot. This might not work.
Renewing an existing certificate
Performing the following challenges:
dns-01 challenge for website.com
dns-01 challenge for website.com

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NOTE: The IP of this machine will be publicly logged as having requested this
certificate. If you're running certbot in manual mode on a machine that is not
your server, please ensure you're okay with that.

Are you OK with your IP being logged?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: Y

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please deploy a DNS TXT record under the name
_acme-challenge.website.com with the following value:

j-iC2Fywptdjn_MX4UQCTzDJ5FiuyyZiosVaZYTZxNA

Before continuing, verify the record is deployed.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Press Enter to Continue

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please deploy a DNS TXT record under the name
_acme-challenge.website.com with the following value:

eO1eVTi4cPTpZYcuAkrqqYpRcPIobayhPawvtLNqBpU

Before continuing, verify the record is deployed.
(This must be set up in addition to the previous challenges; do not remove,
replace, or undo the previous challenge tasks yet. Note that you might be
asked to create multiple distinct TXT records with the same name. This is
permitted by DNS standards.)

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Press Enter to Continue
Waiting for verification...
Cleaning up challenges

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/website.com/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/website.com/privkey.pem
   Your cert will expire on 2020-06-29. To obtain a new or tweaked
   version of this certificate in the future, simply run certbot-auto
   again. To non-interactively renew *all* of your certificates, run
   "certbot-auto renew"
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

(23) Failed writing body

Как видите, у меня есть поставить вручную на мою учетную запись DNS VPS 2 TXT поля с именами _acme-challenge.website.com и содержащие:

j-iC2Fywptdjn_MX4UQCTzDJ5FiuyyZiosVaZYTZxNA

и

eO1eVTi4cPTpZYcuAkrqqYpRcPIobayhPawvtLNqBpU

Интересно, есть ли способ автоматизировать эту регистрацию полей TXT или есть ли другой способ запустить простую команду или скрипт в crontab (выполняется каждые 2 месяца), чтобы избежать всех этих ручных операций?

Все это кажется относительно тяжелым для выполнения каждого раз я хочу обновить эти сертификаты (4 файла ниже):

$ ls /etc/letsencrypt/live/website.com/
privkey.pem@  fullchain.pem@  chain.pem@  cert.pem@

1 Ответ

0 голосов
/ 01 апреля 2020

Регистрация DNS TXT - Записи могут быть автоматизированы, если у вас есть доступ к программному изменению записей, поэтому у вас есть DNS-сервер или у вашего провайдера есть API.

Вот некоторые из них:

...