DNS Over TLS のプロキシとして nginx で実行されているパブリック Pi-Hole があります。これまでのところ、すべてがうまく機能しています。残念ながら、私の Android スマートフォンは接続を確立できなくなりました。
Wireshark 経由で、期限切れの証明書が発行されているため、接続が中止されていることがわかりました。安全のために、Certbot 経由で新しい証明書を発行しましたが、有効期限が切れたと思われる証明書がまだ発行されています。
私のnginx設定:
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)
Windows システムで Stubby を使用すると、問題なく接続できます。
はい、ポート 53 はブロックされており、外部からは使用できません ;)
また、通常は HTTPS 経由でアクセスできる Web サイトをセットアップし、同じ証明書を含めました。そこに Android はまた、すべてが大丈夫だと言っています。