mac osのcurlがなんか変だぞ?

Mac OSのcurl、(プライベートリレーを有効にしている場合)なにやらAppleの持ってるDNS-over-HTTPSみたいなものにアクセスしようとしている???

curlがインターネットにアクセスしようとするたびに、ここにリクエストが飛ばされている…

Standard query HTTPS mask.apple-dns.net
Standard query response HTTPS mask.apple-dns.net SOA ns-1462.awsdns-54.org

(というかHTTPSレコードってあるんだね…)

でもどうやらDoHでもないらしく??かといって平文のDNSでもないらしい(HTTPSと書いてあるからそれはそうか)

しかし実のところ、標準のSSLですらないらしい??

https://github.com/curl/dohを使ってみると…

doh -v google.com https://mask.apple-dns.net
== Info: Found bundle for host mask.apple-dns.net: 0x600001454db0 [serially]
== Info: Server doesn't support multiplex (yet)
== Info:   Trying 2403:300:1363:4::9:443...
== Info: Hostname 'mask.apple-dns.net' was found in DNS cache
== Info:   Trying 2403:300:1363:4::9:443...
== Info: Connected to mask.apple-dns.net (2403:300:1363:4::9) port 443 (#0)
== Info: ALPN, offering h2
== Info: ALPN, offering http/1.1
== Info: successfully set certificate verify locations:
== Info:  CAfile: /etc/ssl/cert.pem
== Info:  CApath: none
== Info: (304) (OUT), TLS handshake, Client hello (1):
=> Send SSL data, 0000000323 bytes (0x00000143)
...
== Info: Connected to mask.apple-dns.net (2403:300:1363:4::9) port 443 (#1)
== Info: ALPN, offering h2
== Info: ALPN, offering http/1.1
== Info: successfully set certificate verify locations:
== Info:  CAfile: /etc/ssl/cert.pem
== Info:  CApath: none
== Info: (304) (OUT), TLS handshake, Client hello (1):
=> Send SSL data, 0000000323 bytes (0x00000143)
...
== Info: LibreSSL SSL_connect: SSL_ERROR_SYSCALL in connection to mask.apple-dns.net:443
== Info: Closing connection 0
probe for A failed: SSL connect error
== Info: LibreSSL SSL_connect: SSL_ERROR_SYSCALL in connection to mask.apple-dns.net:443
== Info: Closing connection 1
probe for AAAA failed: SSL connect error

証明書検証エラーとかだったらまだ許せるが、ハンドシェイク時点でこんな感じで接続エラーが出てくる!これはレアじゃないの?

curlに無理やり? AppleのDoHをねじ込むばかりでなく、接続先のサーバーも標準のDoHの実装ではないのだったら独自にAPIを用意しているということでまだいいが、SSLっぽいけど微妙に違う謎仕様という、さすがApple…

まあ全部のケースに対応してるとサーバーが重くなるからとかあるんだろうけどね。