DANE a Let's Encrypt: jak automaticky obnovovat TLSA záznam?

Rad bych vyuzil DANE u meho certifikatu, jen nevim jak to udelat aby se po obnoveni certifikatu (coz je u LE myslim vzdycky po 90 dnech) automaticky obnovil taky TLSA zaznam u jmenneho serveru.

Pokud vim, TLSA obsahuje nakej hash certifikatu nebo co, tudiz kdyz se zmeni certifikat, musi se zmenit i TLSA-record. Samotnej certifikat ze obnovuje automaticky, ale je mozne nejak zautomatizovat taky obnoveni toho TLSA-zaznamu? U mne je to komplikovanejsi tim, ze web-server (nginx) kde se certifikat obnovuje a dn-server (bind) kde by mel byt TLSA-zaznam jsou dva ruzne servery.

Driv, nez se pustim do bastleni nakeho skriptu se radsi zeptam, jestli na to uz neco neexistuje?
« Poslední změna: 09. 03. 2022, 16:27:02 od Petr Krčmář »


Re:DANE a Let's Encrypt: jak automaticky obnovovat TLSA záznam?
« Odpověď #1 kdy: 09. 03. 2022, 16:30:36 »
TLSA záznam může obsahovat otisk certifikátu, ale může obsahovat také otisk klíče. Viz náš článek s popisem celého TLSA – hledejte selektor typu 1. Pokud tam dáte otisk veřejného klíče, pak je možné držet klíč stejný a nechat si pro něj jen stále dokola vystavovat nový certifikát.

Certbota je k tomu tuším třeba trochu nutit, protože vygeneruje pro každý certifikát nový pár klíčů. ACME.sh to ale nedělá a nechává podepisovat stále stejný veřejný klíč, pokud si neřeknete znovu.

TLSA záznam si pak můžete vygenerovat ručně jednou, dát ho do zóny a už na něj není potřeba nikdy sahat. Pokud nepřijdete o privátní klíč, pak musíte ručně rotovat, ale obvykle to není potřeba.

Re:DANE a Let's Encrypt: jak automaticky obnovovat TLSA záznam?
« Odpověď #2 kdy: 09. 03. 2022, 17:48:51 »
Záleží na tom, jakého klienta používáte pro obnovu certifikátů. Pokud bude používat stále stejný klíč, můžete dát do TLSA jen otisk klíče. Pokud byste chtěl klíče měnit, obvykle nástroj na generování certifikátů má možnost v některých místech se napojit, např. zavolá váš skript. Ve kterém byste mohl zveřejnit ten TLSA záznam. Pozor ale na to, že nový TLS záznam musíte zveřejnit dopředu, nechat tam ještě starý, pak počkat minimálně po dobu platnosti toho záznamu, a teprve pak můžete nasadit nový certifikát na webový server a smazat původní TLSA záznam. Nemyslím si, že by většina ACME klientů byla tak flexibilní, aby v nich šlo toto snadno nakonfigurovat. Proto bych se přimlouval k tomu obnovování certifikátu se stejným klíčem, jak to popsal Petr.

Re:DANE a Let's Encrypt: jak automaticky obnovovat TLSA záznam?
« Odpověď #3 kdy: 09. 03. 2022, 19:29:02 »
Dekuji za informace, tohle sem nevedel. Pouzivam klienta "certbot --nginx". Jenze mam nakej zmatek v tech klicicih. Certbot ma sice moznost "--reuse-key", ale to se tyka privatniho klice:

--reuse-key   When renewing, use the same private key as the existing certificate. (default: False)

Selector 1 vyuziva otisk verejneho klice. Jak tedy docilit, aby byl stejnej verejnej klic?

Re:DANE a Let's Encrypt: jak automaticky obnovovat TLSA záznam?
« Odpověď #4 kdy: 09. 03. 2022, 19:58:14 »
Certbot ma sice moznost "--reuse-key", ale to se tyka privatniho klice:

--reuse-key   When renewing, use the same private key as the existing certificate. (default: False)

Selector 1 vyuziva otisk verejneho klice. Jak tedy docilit, aby byl stejnej verejnej klic?
To je ono. Dvojice klíčů (privátní klíč a veřejný klíč) vždy patří k sobě. Takže když se znovu použije privátní klíč, znamená to, že se znovu použije i veřejný klíč.