I don't really know about postfix or email, but 'signature crypto
failed' means that the data did not match the signature. Thus SERVFAIL
is the correct rcode.
It means that the contents of the TXT record have been altered, and the
text in it does not match the RRSIG digital signature. If this was a
spurious technical failure, it could be due to upper/lowercase somehow
getting changed (inside the text record), or people editing the contents
by hand without running the signer again.
at first I could check if disabling dnssec validation help:
$ dig mail.acme.com. txt +cdflag
next I would use an external validator to check if the domain owner
signed the domain correctly. http://dnsviz.net or https://zonemaster.net are a good services for such jobs.
- click "update now"
- click "Advanced options (forced ancestor analysis, recursive, explicit delegation, etc.)"
- select "TXT" as Extra Typ
- click Analyze
- DNSSEC and Response proof the TXT-Record has an invalid signature
Disable DNSSEC validation for that domain in your unbound.conf (domain-insecure: mail.crypsys.nl)
and try to contact the domain owner.
It was simply a choice of efficiency. By default queries for MX, TXT, NS, and SOA are only issued if the name is a zone apex because it is more common to see those records at a zone apex. It would be a bit slower and require more storage to keep track of the less common case. The option of specifying TXT (and others) allows some flexibility beyond the defaults.
I wondered if it was, because the zone was only signed partially. So it shows only the A record, because that is all that is signed. And the TXT record is not signed.
But I suppose that may not even be possible.
There certainly are cases (with various causes) where RRSIGs are not returned with some RRsets although they are returned with others in the same zone. In this case, however, RRSIGs are returned for both--if they are queried--but the RRSIG covering the TXT RRset does not validate.