ISC Bind9 with DNS over TLS (DOT) fails when strict tls auth is enabled
0
votes
0
answers
27
views
working I installed and setup Bind9 official package to test DNS forward zones based on source IP/subnets which unbound doesn't support
I properly set NAT forwards, changed listening ports on Bind9 and configured it for DNS over TLS (see below)
All works properly and DNS requests are properly forwarded and use TLS until I uncomment
remote-hostname
and/or ca-file
options. Without them, as per Bind9 doc, encryption is granted but not TLS authentication
If I enable those options to ensure strict TLS authentication, clients cannot resolve DNS entries and I get the below errors in logs:
Jul 29 00:50:29 named 92197 query-errors: debug 4: fetch completed for readaloud.googleapis.com.intranet/A in 0.056869: TLS peer certificate verification failed/success [domain:.,referral:0,restart:1,qrysent:0,timeout:0,lame:0,quota:0,neterr:0,badresp:0,adberr:0,findfail:0,valfail:0]
Jul 29 00:50:29 named 92197 query-errors: info: client @0x1414c4b10800 10.0.31.62#9512 (readaloud.googleapis.com.intranet): query failed (TLS peer certificate verification failed) for readaloud.googleapis.com.intranet/IN/A at query.c:7836
I tried with different ca-file
values, but no success
**My working Bind9 config (with remote-hostname
commented):**
tls cloudflare-tls {
// ca-file "/usr/local/share/certs/ca-root-nss.crt";
// ca-file "/usr/local/etc/ssl/cert.pem";
// ca-file "/usr/share/certs/trusted/IdenTrust_Commercial_Root_CA_1.pem";
// remote-hostname "one.one.one.one";
prefer-server-ciphers yes;
};
options {
forwarders {
1.1.1.1 port 853 tls cloudflare-tls;
1.0.0.1 port 853 tls cloudflare-tls;
2606:4700:4700::1111 port 853 tls "cloudflare-tls";
2606:4700:4700::1001 port 853 tls "cloudflare-tls";
};
};
* **Bind9 Docs:**
[https://bind9.readthedocs.io/en/v9.18.14/reference.html#namedconf-statement-prefer-server-ciphers](https://bind9.readthedocs.io/en/v9.18.14/reference.html#namedconf-statement-prefer-server-ciphers)
> Strict TLS provides server authentication via a pre-configured
> hostname for outgoing connections. This mechanism offers both channel
> confidentiality and channel authentication (of the server). In order
> to achieve Strict TLS, one needs to use remote-hostname and,
> optionally, ca-file options in the tls statements used for
> establishing outgoing connections (e.g. the ones used to download zone
> from primaries via TLS). Providing any of the mentioned options will
> enable server authentication. If remote-hostname is provided but
> ca-file is missed, then the platform-specific certificate authority
> certificates are used for authentication. The set roughly corresponds
> to the one used by WEB-browsers to authenticate HTTPS hosts. On the
> other hand, if ca-file is provided but remote-hostname is missing,
> then the remote side’s IP address is used instead.
Any help why enabling tls auth fails?
Asked by user2565854
(1 rep)
Jul 29, 2025, 08:05 AM
Last activity: Jul 29, 2025, 08:29 AM
Last activity: Jul 29, 2025, 08:29 AM