Closed
Description
SslServerAuthenticationOptions is the primary type for configuring HTTPS/TLS in Kestrel. It is designed for SslStream but most of the options can be mapped to QUIC.
The goal is to make setting a certificate for HTTP/3 to be like setting a certificate for other protocols.
Break down of its properties:
- AllowRenegotiation. Not sure if this is supported in QUIC or not. Crypto settings can't change once started with QUIC.
Alternatively, might map to QUIC_SERVER_RESUMPTION_LEVEL. - ApplicationProtocols. Already using successfully.
- CertificateRevocationCheckMode. No built in support. Can we implement manually with .NET APIs?
-
CipherSuitesPolicy. Not currently supported.Tracked separately as QUIC: support CipherSuitesPolicy #55378 - ClientCertificateRequired. QUIC_CREDENTIAL_FLAG_REQUIRE_CLIENT_AUTHENTICATION.
- EnabledSslProtocols. Not revelevent.
- EncryptionPolicy. Not revelevent.
- RemoteCertificateValidationCallback. QUIC_CREDENTIAL_FLAG_INDICATE_CERTIFICATE_RECEIVED.
- certificate - Passed as a platform sepecific certificate type.
- chain - resolve from certificate?
- sslPolicyErrors - figure this out ourselves?
- ServerCertificate. Already used.
- ServerCertificateContext. Not sure about this one.
-
ServerCertificateSelectionCallback. Used for SNI. Already used as part of setting the server certificate with a listener connection. Relevent: https://github.com/microsoft/msquic/blob/73bd4a7700b9d0c4f9570a46734eb9bf40f8448f/src/inc/msquic.h#L753Extracted to [QUIC] Server side certificate selection viaServerCertificateSelectionCallback
should work #55421
System.Net.Quic currently has an out of date version of msquic. Current blocked on msquic update: #44580