Dear Mark, I did get the issue resolved while setting up a test environment.
The issue is that normal permissions in the key-directory are root:bind 0644 for the public key and root:bind 0600 for the private key. The issue disappears when setting the private key to 0644 also and that must be done before starting bind - before using nsupdate is not enough. Do you know if these permissions are standard or a consequence of starting DNSSEC via webmin? Test setup - BIND 9.10.3-P4-Debian stretch: /etc/bind/named.conf include "/etc/bind/named.conf.options"; include "/etc/bind/named.conf.local"; include "/etc/bind/named.conf.default-zones"; include "/etc/bind/named.conf.log"; key rndc-key { algorithm hmac-md5; secret "ctHOTtudBPhdKIgaC2baPA=="; }; key nsupdate { algorithm HMAC-SHA512; secret "E0tzjpBzrcpGiZwmlqsE86hTzI2UAXNlm/pRNl2blZaze4Edn7vSHWP6 14gmwKKXYQPKHwnG83HTWURbqRykMQ=="; }; controls { inet 127.0.0.1 port 953 allow { 127.0.0.1; } keys { rndc-key; }; }; /etc/bind/named.conf.options options { directory "/var/cache/bind"; dnssec-validation auto; auth-nxdomain no; # conform to RFC1035 allow-recursion { any; }; }; /etc/bind/named.conf.local zone "testzone.com" { type master; file "/var/lib/bind/testzone.com.hosts"; update-policy { grant nsupdate zonesub TXT; }; key-directory "/var/lib/bind"; auto-dnssec maintain; }; Regards, Michael Schefczyk -----Ursprüngliche Nachricht----- Von: Mark Andrews [mailto:ma...@isc.org] Gesendet: Montag, 26. Februar 2018 01:57 An: Prof. Dr. Michael Schefczyk <mich...@schefczyk.net> Cc: bind-users@lists.isc.org Betreff: Re: DNSSEC and nsupdate > On 26 Feb 2018, at 8:12 am, Prof. Dr. Michael Schefczyk > <mich...@schefczyk.net> wrote: > > Dear Mark, > > Thank you very much! No, chroot is not involved. Package debootstrap > (required for chroot as far as I understand) is not even installed. > > It would be great to understand, what the error message: > > warning: dns_dnssec_findzonekeys2: error reading private key file > fqdn/ECDSAP384SHA384/41844: file not found > > really means. One does specify the key directory. Does the error message > imply, that the key directory should have as many levels of subdirectories as > the error message contains slashes? In the lowest directory level, how would > a key file need to be named. Not the old convention of > K[fqdn]+number+keyid.key or .private anymore? No that hasn’t changed. error reading private key file fqdn/ECDSAP384SHA384/41844 is short hand for error reading private key file for ‘fqdn' with algorithm ECDSAP384SHA384 and key id 41844. At this stage I suggest that you post actual config details and actual command lines rather than describing what you have done as the error will be in the details which we can’t see without them. > Regards, > > Michael > ____________________________________________________________ > Technische Universität Dresden > Fakultät Wirtschaftswissenschaften > Lehrstuhl für Entrepreneurship und Innovation Prof. Dr. Michael > Schefczyk > D-01062 Dresden > > Fon: +49-3 51-4 63-3 68 81 > Fax: +49-3 51-4 63-3 68 83 > www.gruenderlehrstuhl.de > > > > > Are you running chrooted? Did you make the keys visible in the chroot area? > > >> On 25 Feb 2018, at 2:37 am, Prof. Dr. Michael Schefczyk >> <mich...@schefczyk.net> wrote: >> >> Dear All, >> >> For a long time already, I am using a bind master DNS server based on debian >> set up via webmin. It is currently Debian Stretch with bind 9.10. I am using >> DNSSEC. >> >> The webmin setup leads to all keys being stored in /var/lib/bind. The >> naming scheme is K[fqdn]+number+keyid.key or .private. There is one >> key-signing key and one zone-signing key for each fqdn. Resigning works via >> a perl srcipt / cronjob shipped by webmin. >> >> To be able to generate future letsencrypt wildcard certificates, I would >> like to implant acme challenges as TXT records via DNS. Using nsupdate, the >> dnssec signing becomes troublesome. The error message in update_debug.log is: >> >> Date/Time info: client IP#36210/key nsupdate: updating zone 'fqdn/IN': >> adding an RR at '_acme-challenge.fqdn' TXT "..." >> Date/Time error: client IP#36210/key nsupdate: updating zone >> 'fqdn/IN': found no active private keys, unable to generate any >> signatures Date/Time error: client IP#36210/key nsupdate: updating >> zone 'fqdn/IN': RRSIG/NSEC/NSEC3 update failed: not found >> >> Looking further, bind.log shows: >> Date/Time general: warning: dns_dnssec_findzonekeys2: error reading >> private key file fqdn/ECDSAP384SHA384/41844: file not found Date/Time >> general: warning: dns_dnssec_findzonekeys2: error reading private key >> file fqdn/ECDSAP384SHA384/55203: file not found >> >> The numbers 41844 and 55203 are the very key IDs for which keys do exist in >> the traditional K... format /var/lib/bind. Of course, /var/lib/bind is also >> set as the key directory. The keys are certainly readable without >> permissions problems. The error does not go away even if you make them 777. >> >> Please inform me what the issue is and what to do. Is there a change in the >> key naming scheme? How would the new names look like? I can certainly create >> one directory per fqdn under /var/lib/bind/ and then one subdirectory >> ECDSAP384SHA384 but what would be the (two?) files in 41844 and 55203? Is >> there a way to convert? >> >> Thank you very much for your efforts! >> >> Michael Schefczyk >> >> _______________________________________________ >> Please visit https://lists.isc.org/mailman/listinfo/bind-users to >> unsubscribe from this list >> >> bind-users mailing list >> bind-users@lists.isc.org >> https://lists.isc.org/mailman/listinfo/bind-users > > -- > Mark Andrews, ISC > 1 Seymour St., Dundas Valley, NSW 2117, Australia > PHONE: +61 2 9871 4742 INTERNET: ma...@isc.org > > -- Mark Andrews, ISC 1 Seymour St., Dundas Valley, NSW 2117, Australia PHONE: +61 2 9871 4742 INTERNET: ma...@isc.org _______________________________________________ Please visit https://lists.isc.org/mailman/listinfo/bind-users to unsubscribe from this list bind-users mailing list bind-users@lists.isc.org https://lists.isc.org/mailman/listinfo/bind-users