Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Used to check what domain the client requested when opening a TLS connection.
Syntax
typedef struct _HTTP_REQUEST_PROPERTY_SNI {
WCHAR Hostname[HTTP_REQUEST_PROPERTY_SNI_HOST_MAX_LENGTH + 1];
ULONG Flags;
} HTTP_REQUEST_PROPERTY_SNI, *PHTTP_REQUEST_PROPERTY_SNI;
Members
Hostname[HTTP_REQUEST_PROPERTY_SNI_HOST_MAX_LENGTH + 1]
Flags
Type: ULONG
Identifies how http.sys is using the SNI for this connection; the values of the flags are:
HTTP_REQUEST_PROPERTY_SNI_FLAG_SNI_USED (0x1). The SNI value was used as part of identifying the endpoint during the handshake for this request. If an SNI was included in the TLS handshake, but http.sys still used an IP endpoint for lookup, then this value won't be set.
HTTP_REQUEST_PROPERTY_SNI_FLAG_NO_SNI (0x2). The client didn't include an SNI. If this flag is set, then HTTP_REQUEST_PROPERTY_SNI_FLAG_SNI_USED can't be set.
Remarks
Server name indication (SNI), is a part of the TLS Client Hello where the client requests a specific hostname from a server. Hosts often serve a multitude of domains from a single server, and will regularly have different certificates for different domains, meaning that they need to know the SNI in order to decide which certificate to use for the TLS handshake.
Requirements
| Requirement | Value |
|---|---|
| Header | http.h |