'nginx + Pihole -> DNS over TLS => Certificate Expired
I have a public Pi-Hole running with nginx as proxy for DNS Over TLS. So far everything has worked great. Unfortunately, my Android smartphone can no longer establish a connection.
Via Wireshark I found out that the connection is aborted because an expired certificate is issued. I have issued a new certificate via Certbot - just to be on the safe side - but a supposedly expired certificate is still issued.
My nginx config:
upstream dns-servers {
server 127.0.0.1:53;
server [::]:53;
}
server {
listen 853 ssl;
listen [::]:853 ssl;
ssl_certificate /etc/letsencrypt/live/sub.mydomain.com/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/sub.mydomain.com/privkey.pem; # managed by Certbot
ssl_dhparam /etc/letsencrypt/dhparam-4096.pem;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256;
ssl_session_cache shared:DoT:10m;
ssl_handshake_timeout 10s;
ssl_session_timeout 4h;
ssl_session_tickets off;
proxy_pass dns-servers;
proxy_connect_timeout 1s;
preread_timeout 2s;
}
Wireshark:
Transport Layer Security
TLSv1.2 Record Layer: Alert (Level: Fatal, Description: Certificate Expired)
With Stubby on the Windows system, I can connect without problems.
Yes, port 53 is blocked and not usable from outside ;)
I have also set up a website that is normally accessible via HTTPS and included the same certificate. There Android also says that everything is ok.
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|
