Sorry, but I have to disagree with @PhoneBoy here.
TLS 1.3 encrypts part of the handshake, that is true.
But SNI is NOT encrypted with TLS 1.3 by default.
SNI is only encrypted, when ESNI feature is used. This features is optional in TLS 1.3. When looking what is currently used in the wild, I see TLS 1.3 in use somewhere but almost no ESNI.
Looking at the implementiation at Check Point gateways: The "Categorize HTTPS Sites" feature looks at the SNI (still possible with TLS 1.3 without ESNI), checks the server cert for validity, trust against own trust store and matching with SNI (not possible anymore with TLS 1.3).
While it is true, that the gateway cannot read the server certificate anymore without full HTTPS inspection, it still can read the SNI.
So Check Point R&D should be able to implement some kind of lite flow for TLS 1.3 to "Categorize HTTPS Sites" by just looking at the SNI, when ESNI is not in use.
Of course, this does not provide the same security like in TLS 1.2, but is better than 'we do not support "Categorize HTTPS Sites" feature with TLS 1.3 at all'
@matangi : What do you think about that?