Skip to content

Commit 003e7ce

Browse files
committed
Pull request 2393: 7773-fix-unencrypted_doh
Updates #7773. Squashed commit of the following: commit d9ca09c Merge: b67a71a a8fdf1c Author: Stanislav Chzhen <[email protected]> Date: Mon Apr 21 15:56:57 2025 +0300 Merge branch 'master' into 7773-fix-unencrypted_doh commit b67a71a Author: Stanislav Chzhen <[email protected]> Date: Fri Apr 18 16:01:49 2025 +0300 home: imp docs commit dab9b05 Author: Stanislav Chzhen <[email protected]> Date: Fri Apr 18 15:09:36 2025 +0300 home: fix unencrypted doh
1 parent a8fdf1c commit 003e7ce

File tree

1 file changed

+22
-6
lines changed

1 file changed

+22
-6
lines changed

internal/home/dns.go

Lines changed: 22 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -317,13 +317,7 @@ func newDNSTLSConfig(
317317
return &dnsforward.TLSConfig{}, nil
318318
}
319319

320-
cert, err := tls.X509KeyPair(conf.CertificateChainData, conf.PrivateKeyData)
321-
if err != nil {
322-
return nil, fmt.Errorf("parsing tls key pair: %w", err)
323-
}
324-
325320
dnsConf = &dnsforward.TLSConfig{
326-
Cert: &cert,
327321
ServerName: conf.ServerName,
328322
StrictSNICheck: conf.StrictSNICheck,
329323
}
@@ -340,6 +334,28 @@ func newDNSTLSConfig(
340334
dnsConf.QUICListenAddrs = ipsToUDPAddrs(addrs, conf.PortDNSOverQUIC)
341335
}
342336

337+
cert, err := tls.X509KeyPair(conf.CertificateChainData, conf.PrivateKeyData)
338+
if err != nil {
339+
const format = "parsing tls key pair: %w"
340+
if conf.AllowUnencryptedDoH {
341+
// TODO(s.chzhen): Use [slog.Logger].
342+
log.Info("warning: %s: %s", format, err)
343+
344+
return dnsConf, nil
345+
}
346+
347+
return nil, fmt.Errorf(format, err)
348+
}
349+
350+
// Unencrypted DoH is managed by AdGuard Home itself, not by dnsproxy.
351+
// Therefore, avoid setting the certificate property to prevent dnsproxy
352+
// from starting encrypted listeners. See [dnsforward.Server.prepareTLS].
353+
if conf.AllowUnencryptedDoH {
354+
return dnsConf, nil
355+
}
356+
357+
dnsConf.Cert = &cert
358+
343359
return dnsConf, nil
344360
}
345361

0 commit comments

Comments
 (0)