I mean whitelist port 80 for captive.apple.com. Sorry if that wasn't clear.
macOS has a background daemon which automatically hits captive.apple.com on connection to a WiFi network, to detect if it's behind a captive portal (and opens up a browser window to let you complete the flow, if it gets a 302). So that much should work even if you block egress port 80 but whitelist captive.apple.com.
...that is, assuming the portal to which you get redirected would be served over https, but I guess that isn't a given either.