network – Why can’t Safari connect to “server.local”, when Firefox and Chrome can? Is mDNS the reason?


I have a new file server freenas.local. I can connect to it fine with Firefox and Chrome web browsers, but not with Safari browser. The server is announcing correctly on mDNS, as measured by Firefox and Chrome success, and by dns-sd output. What is going on? How can I get Safari to connect?

Here are the specific results I get when connecting with the browsers:

  • via regular http, to http://freenas.local
    • Safari: “Safari can’t open the page. Safari can’t open the page “freenas.local” because the server unexpectedly dropped the connection. This sometimes occurs when the server is busy. Wait for a few minutes, and then try again.” (Trying again doesn’t help.)
    • Firefox, Chrome: connect successfully, via http.
  • via https, to https://freenas.local
    • Safari: “Safari can’t connect to the server. Safari can’t open the page “freenas.local” because Safari can’t connect to the server “freenas.local”.”
    • Firefox, Chrome: connect successfully, via https, with an expected warning about the website being unsafe, for known reasons related to the server’s SSL certificate..
  • via IP address, to http://192.150.23.2
    • Safari: connects successfully, via http.
    • Firefox, Chrome: connect successfully, via http.
  • via IP address and https, to https://192.150.23.2
    • Safari: connects successfully, with an expected warning about the website being unsafe, for known reasons related to the server’s SSL certificate.
    • Firefox, Chrome: connect successfully, via https, with an expected warning etc.

The behaviour I expect is that Safari connect in every case just as Chrome and Firefox do.

I used dns-sd to test the mDNS (aka Bonjour) announcements. This is what I get:

% dns-sd -B _http local                        
Browsing for _http._tcp.local
DATE: ---Mon 13 Jul 2020---
18:39:32.525  ...STARTING...
Timestamp     A/R    Flags  if Domain               Service Type         Instance Name
18:39:32.526  Add        3   5 local.               _http._tcp.          freenas
18:39:32.527  Add        2   8 local.               _http._tcp.          freenas
18:39:32.629  Add        3   5 local.               _http._tcp.          Maker PR-1234 "printer"
18:39:32.629  Add        2   8 local.               _http._tcp.          Maker PR-1234 "printer"
18:39:32.692  Add        2   5 local.               _http._tcp.          OldNAS
18:39:32.929  Add        2   8 local.               _http._tcp.          OldNAS
^C
% dns-sd -L freenas _http local 
Lookup freenas._http._tcp.local
DATE: ---Mon 13 Jul 2020---
19:08:29.925  ...STARTING...
19:08:30.068  freenas._http._tcp.local. can be reached at freenas.local.:80 (interface 5)
19:08:30.105  freenas._http._tcp.local. can be reached at freenas.local.:80 (interface 8)
^C

My Mac runs macOS 10.13.6 High Sierra. Server “freenas” runs FreeNAS 11.3, based on FreeBSD. I have changed the names of all servers and IP addresses to protect my network’s privacy, but hopefully that doesn’t obscure the important information. My workaround is to use Firefox instead of Safari, which is fine, but I’d like to understand.

Why can’t Safari connect? How can I get it to connect?