blob: 009e455c52bc8147c692190292b8bda995ef896e [file] [log] [blame] [view]
---
breadcrumbs:
- - /developers
- For Developers
page_name: dns-over-https
title: DNS over HTTPS (aka DoH)
---
## Motivation
When you navigate to a website, your browser first needs to determine which
server is responsible for delivering said website, a step known as DNS
resolution. With DNS over HTTPS, all DNS resolutions occur over an encrypted
channel, helping to further safeguard user security and privacy.
## Launches
See these blog posts to learn more about DoH in Chrome:
[Desktop](https://blog.chromium.org/2020/05/a-safer-and-more-private-browsing-DoH.html),
[Android](https://blog.chromium.org/2020/09/a-safer-and-more-private-browsing.html).
### DoH Providers
The latest version of DoH providers recognized by Chrome (canary) can be found
[here](https://source.chromium.org/chromium/chromium/src/+/HEAD:net/dns/public/doh_provider_entry.cc)
(the format should be self explanatory).
Note that users can configure any DoH providers of their choosing, the providers
included in Chrome are for the auto-upgrade mechanism and for a list of
popular/relevant options as a convenience (see the [requirements and
process](https://docs.google.com/document/d/128i2YTV2C7T6Gr3I-81zlQ-_Lprnsp24qzy_20Z1Psw/edit?usp=sharing)).
Chromium users (or administrators of managed deployments) can specify a custom
configuration as a [DoH URI
template](https://datatracker.ietf.org/doc/html/rfc8484#section-3). If the
template includes a `dns` variable, Chromium will issue DoH requests using the
`GET` HTTP method; otherwise it will use `POST`. Users can also enter multiple
templates separated by whitespace, improving reliability if one DoH server
fails. Starting in M103, a JSON configuration format is supported for advanced
uses and debugging of the [Enhanced
Bootstrap](https://docs.google.com/document/d/1OBiAK9bfFNfmezP-trlAL6v5kz1D0xXCg_nmcSM2so8/edit#heading=h.7nki9mck5t64)
feature:
~~~JSON
{
"servers": [{
"template": "https://dnsserver.example.net/dns-query{?dns}",
"endpoints": [{
"ips": ["192.0.2.1", "2001:db8::1"]
}]
}]
}
~~~
For technical questions, please send an email to
[net-dev@](https://groups.google.com/a/chromium.org/forum/#!forum/net-dev/) with
the \[DoH\] prefix in the subject line.
### **FAQ**
**Q:** Do you plan to support a canary domain similar to Mozilla's
[use-application-dns.net](http://use-application-dns.net/)?
**A:** We have no plans to support this approach. We believe that our deployment
model is significantly different from Mozilla's, and as a result canary domains
won't be needed. In particular, our deployment model is designed to preserve the
current user experience, i.e. auto-upgrading to the current DNS provider's DoH
server which offers the same features.
**Q:** How will Chrome's auto-upgrade approach work with Split Horizon?
**A:** Chrome's auto-upgrade approach does not change the DNS provider, and is
designed to preserve the same user experience. Split Horizon setups should
continue to work as is. Furthermore, managed deployments should be automatically
opted-out, and administrators can use policies to control the feature.