From 81579961d75c9f87413db8c8d7d58cbc79b8e8d1 Mon Sep 17 00:00:00 2001
From: fyr77 This website uses technical cookies. By continuing you agree to the use of these cookies. No personal data is
+ stored or shared. Learn more This website allows you to create configuration profiles for your Apple device to use the new built-in encrypted DNS options. This website allows you to create configuration profiles for your Apple device to use the new built-in encrypted
+ DNS options. Apple has included built-in support for DNS-over-HTTPS and DNS-over-TLS in their iOS 14 and macOS Big Sur updates. But there is no possibility to use this new feature without a third-party app or configuration profiles. I personally preferred not to install some app to manage this for me. Apple has included built-in support for DNS-over-HTTPS and DNS-over-TLS in their iOS 14 and macOS Big Sur
+ updates. But there is no possibility to use this new feature without a third-party app or configuration
+ profiles. I personally preferred not to install some app to manage this for me. I prefer to use tools which I can make sure do exactly what they claim to do. Configuration profiles are rather transparent, they can be opened with any text editor and viewed. This website is completely open-source. I prefer to use tools which I can make sure do exactly what they claim to do. Configuration profiles are rather
+ transparent, they can be opened with any text editor and viewed. This website is completely open-source. Visit this website using you Apple device and navigate to the tool. Then, select a pre-made configuration or enter your own settings and click/tap "Download profile". Then, open the downloaded file using the "Files" app. Visit this website using you Apple device and navigate to the tool. Then, select a pre-made configuration or
+ enter your own settings and click/tap "Download profile". Then, open the downloaded file using the "Files" app.
+ DNS is basically the phone book of the internet. If you visit a website, your computer first contacts the DNS server to look up where its even supposed to connect to. DNS is basically the phone book of the internet. If you visit a website, your computer first contacts the DNS
+ server to look up where its even supposed to connect to. There isn't a huge difference between the two protocols. In the end, it's more personal preference than anything else. If your system supports both - as Apple systems do - you can choose whatever you want.Secure DNS profile creator
+ For iOS 14 or later and macOS Big Sur or later
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/index.html b/index.html
index 582186d..07c395d 100644
--- a/index.html
+++ b/index.html
@@ -1,5 +1,6 @@
+
@@ -7,48 +8,71 @@
-
+
+
-
+ Secure DNS profile creator
For iOS 14 or later and macOS Big Sur or later
-
+
-
+
-
+
What is this?
- Details
-
- This websites generates a configuration profile which is installable on your system and activates encrypted DNS.
+ This websites generates a configuration profile which is installable on your system and activates encrypted DNS.
+ Why not use an app?
-
- An app off the App Store might do what it should, sure. But it also might capture data inbetween and negate the privacy advantage that DoH and DoT bring.
+ An app off the App Store might do what it should, sure. But it also might capture data inbetween and negate the
+ privacy advantage that DoH and DoT bring.How do I use this?
-
- Your device will ask you a few times, be sure to accept the warnings.
- The generated profiles are not signed. This is normal.
+ Your device will ask you a few times, be sure to accept the warnings.
+ The generated profiles are not signed. This is normal.Why should I care about encrypted DNS?
-
- While the traffic itself is often encrypted nowadays, the lookup itself still is not without DoH/DoT. So anyone in the same network will still know exactly which websites you visited.
- If you want to know more about this, give this blog post by Paul Miller a read, he explains the subject very nicely.
+ While the traffic itself is often encrypted nowadays, the lookup itself still is not without DoH/DoT. So anyone
+ in the same network will still know exactly which websites you visited.
+ If you want to know more about this, give this blog post by
+ Paul Miller a read, he explains the subject very nicely.DNS-over-HTTPS or DNS-over-TLS?
- DoH is harder to spot in regular network traffic and is also less likely to be blocked in a corporate environment, since it uses the same port as any secured website.
- DoT is possibly faster, since it uses one layer of transport less. But it uses it's own port and is therefore obvious to any other people monitoring the network - and might be blocked behind very strict firewalls.
+ DoT is possibly faster, since it uses one layer of transport less. But it uses it's own port and is therefore
+ obvious to any other people monitoring the network - and might be blocked behind very strict firewalls.
In the end, it's more personal preference than anything else. If your system supports both - as Apple systems do + - you can choose whatever you want.
This comes down to a few factors. First, location. Living in countries which block certain websites narrows your choice down considerably. Furthermore, different providers have different priorities. I suggest you do some research into the providers yourself. For example, you could take a look at this table which lists a few providers and compares them.
+This comes down to a few factors. First, location. Living in countries which block certain websites narrows your + choice down considerably. Furthermore, different providers have different priorities. I suggest you do some + research into the providers yourself. For example, you could take a look at this table which lists a few providers and compares + them.
This website does not use any ads or tracking. If you enjoy it and want to show some support, buy me a coffee. It's greatly appreciated!
+This website does not use any ads or tracking. If you enjoy it and want to show some support, buy me a coffee. It's greatly appreciated!
+ \ No newline at end of file diff --git a/js/finalize.js b/js/finalize.js new file mode 100644 index 0000000..16f8edd --- /dev/null +++ b/js/finalize.js @@ -0,0 +1,323 @@ +window.onload = function () { + deleteTempCookies(); + buildList(); +} + +function deleteCard(cardNo) { + document.getElementById("card" + cardNo).remove(); + document.cookie = cardNo + "provName=;expires=Thu, 01 Jan 1970 00:00:00 GMT; SameSite=Strict; Secure"; + document.cookie = cardNo + "doh=;expires=Thu, 01 Jan 1970 00:00:00 GMT; SameSite=Strict; Secure"; + document.cookie = cardNo + "dns1v4=;expires=Thu, 01 Jan 1970 00:00:00 GMT; SameSite=Strict; Secure"; + document.cookie = cardNo + "dns2v4=;expires=Thu, 01 Jan 1970 00:00:00 GMT; SameSite=Strict; Secure"; + document.cookie = cardNo + "dns1v6=;expires=Thu, 01 Jan 1970 00:00:00 GMT; SameSite=Strict; Secure"; + document.cookie = cardNo + "dns2v6=;expires=Thu, 01 Jan 1970 00:00:00 GMT; SameSite=Strict; Secure"; + document.cookie = cardNo + "serverUrl=;expires=Thu, 01 Jan 1970 00:00:00 GMT; SameSite=Strict; Secure"; + document.cookie = cardNo + "exclWifi=;expires=Thu, 01 Jan 1970 00:00:00 GMT; SameSite=Strict; Secure"; + document.cookie = cardNo + "useWifi=;expires=Thu, 01 Jan 1970 00:00:00 GMT; SameSite=Strict; Secure"; + document.cookie = cardNo + "useCell=;expires=Thu, 01 Jan 1970 00:00:00 GMT; SameSite=Strict; Secure"; + document.cookie = cardNo + "lockProfile=;expires=Thu, 01 Jan 1970 00:00:00 GMT; SameSite=Strict; Secure"; +} + +function buildList() { + console.log(document.cookie.split("; ")); //DEBUG! + var parent = document.getElementById("dynamicList"); + + for (var i = 0; i < getCookie("runningNo"); i++) { + if (getCookie(i + "provName") != "") { + var carddiv = document.createElement("div"); + carddiv.classList.add("w3-card"); + carddiv.id = "card" + i; + + var header = document.createElement("header"); + header.classList.add("w3-container"); + header.classList.add("w3-light-gray"); + + var headertext = document.createElement("h3"); + headertext.classList.add("w3-left"); + headertext.appendChild(document.createTextNode(getCookie(i + "provName"))); + + var headerdel = document.createElement("button"); + headerdel.classList.add("w3-button"); + headerdel.classList.add("w3-red"); + headerdel.classList.add("w3-right") + headerdel.innerHTML = "X"; + + headerdel.setAttribute("onclick", 'deleteCard(' + i + ')'); + + var infocontainer = document.createElement("div"); + infocontainer.classList.add("w3-container"); + + var infop = document.createElement("p"); + + var infostring = "Connection type: "; + if (getCookie(i + "doh") == "true") { + infostring += "DNS-over-HTTPS"; + } else { + infostring += "DNS-over-TLS"; + } + infop.appendChild(document.createTextNode(infostring)); + infop.appendChild(document.createElement("br")); + var dns1v4 = getCookie(i + "dns1v4"); + var dns2v4 = getCookie(i + "dns2v4"); + var dns1v6 = getCookie(i + "dns1v6"); + var dns2v6 = getCookie(i + "dns2v6"); + var exclWifi = getCookie(i + "exclWifi"); + + if (dns1v4 != "") { + infostring = "Primary IPv4 DNS Server: " + getCookie(i + "dns1v4"); + infop.appendChild(document.createTextNode(infostring)); + infop.appendChild(document.createElement("br")); + } + if (dns2v4 != "") { + infostring = "Secondary IPv4 DNS Server: " + dns2v4; + infop.appendChild(document.createTextNode(infostring)); + infop.appendChild(document.createElement("br")); + } + if (dns1v6 != "") { + infostring = "Primary IPv6 DNS Server: " + dns1v6; + infop.appendChild(document.createTextNode(infostring)); + infop.appendChild(document.createElement("br")); + } + if (dns2v6 != "") { + infostring = "Secondary IPv6 DNS Server: " + dns2v6; + infop.appendChild(document.createTextNode(infostring)); + infop.appendChild(document.createElement("br")); + } + + infostring = "Server Address: " + getCookie(i + "serverUrl"); + infop.appendChild(document.createTextNode(infostring)); + infop.appendChild(document.createElement("br")); + + if (exclWifi != "") { + infostring = "Excluded WiFi SSIDs: " + exclWifi; + infop.appendChild(document.createTextNode(infostring)); + infop.appendChild(document.createElement("br")); + } + + infostring = ""; + + if (getCookie(i + "useWifi") == "true") { + infostring += "Enabled on WiFi. "; + } + if (getCookie(i + "useCell") == "true") { + infostring += "Enabled on Cellular. "; + } + if (getCookie(i + "lockProfile" == "true")) { + infostring += "Disablement prohibited. "; + } + infop.appendChild(document.createTextNode(infostring)); + + + + header.appendChild(headertext); + header.appendChild(headerdel); + carddiv.appendChild(header); + infocontainer.appendChild(infop); + carddiv.appendChild(infocontainer); + parent.appendChild(carddiv); + } + } +} + +function deleteTempCookies() { + document.cookie = "provName=;expires=Thu, 01 Jan 1970 00:00:00 GMT; SameSite=Strict; Secure"; + document.cookie = "doh=;expires=Thu, 01 Jan 1970 00:00:00 GMT; SameSite=Strict; Secure"; + document.cookie = "dns1v4=;expires=Thu, 01 Jan 1970 00:00:00 GMT; SameSite=Strict; Secure"; + document.cookie = "dns2v4=;expires=Thu, 01 Jan 1970 00:00:00 GMT; SameSite=Strict; Secure"; + document.cookie = "dns1v6=;expires=Thu, 01 Jan 1970 00:00:00 GMT; SameSite=Strict; Secure"; + document.cookie = "dns2v6=;expires=Thu, 01 Jan 1970 00:00:00 GMT; SameSite=Strict; Secure"; + document.cookie = "serverUrl=;expires=Thu, 01 Jan 1970 00:00:00 GMT; SameSite=Strict; Secure"; +} + +function getCookie(cname) { + var name = cname + "="; + var decodedCookie = decodeURIComponent(document.cookie); + var ca = decodedCookie.split(';'); + for (var i = 0; i < ca.length; i++) { + var c = ca[i]; + while (c.charAt(0) == ' ') { + c = c.substring(1); + } + if (c.indexOf(name) == 0) { + return c.substring(name.length, c.length); + } + } + return ""; +} + +function deleteAllCookies() { + var cookies = document.cookie.split(";"); + + for (var i = 0; i < cookies.length; i++) { + var cookie = cookies[i]; + var eqPos = cookie.indexOf("="); + var name = eqPos > -1 ? cookie.substr(0, eqPos) : cookie; + document.cookie = name + "=;expires=Thu, 01 Jan 1970 00:00:00 GMT; SameSite=Strict; Secure"; + } +} + +function getRegDNS(iterator) { + var dns1v4 = getCookie(iterator + "dns1v4"); + var dns2v4 = getCookie(iterator + "dns2v4"); + var dns1v6 = getCookie(iterator + "dns1v6"); + var dns2v6 = getCookie(iterator + "dns2v6"); + var ip4format = /^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/; + var ip6format = /^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/; + + var returnstring = "