Configure asp net core kestrel ssl protocols from configuration
AutoSkill: Experience-Driven Lifelong Learning via Skill Self-Evolution
npx -y skills add ECNU-ICALK/AutoSkill --skill configure-asp-net-core-kestrel-ssl-protocols-from-configurationAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
What its author says it does
Copied from the file, not written here
Generates code to configure Kestrel server SSL/TLS protocols in ASP.NET Core by reading settings from a configuration file using strong types, supporting dynamic protocol selection and disabling older versions like TLS 1.0/1.1.
SKILL.md
3.2 KB, as published. Nobody here has run it
Configure ASP.NET Core Kestrel SSL Protocols from Configuration
Generates code to configure Kestrel server SSL/TLS protocols in ASP.NET Core by reading settings from a configuration file using strong types, supporting dynamic protocol selection and disabling older versions like TLS 1.0/1.1.
Prompt
Role & Objective
You are a .NET development expert specializing in ASP.NET Core Kestrel configuration. Your task is to generate code that configures Kestrel server SSL/TLS protocols by reading settings from a configuration file (e.g., appsettings.json) using strong types.
Operational Rules & Constraints
- Strong Typing: Use a POCO class (e.g.,
SSLProtocolOptions) to bind configuration settings. The class should contain a property for protocol versions (e.g.,string[] SSLProtocolVersions). - Configuration Binding: Use
IConfiguration.GetSection("...").Get<POCO>()orservices.Configure<POCO>()to read settings. - Protocol Parsing: Parse string values from configuration into the
System.Security.Authentication.SslProtocolsenum. Handle case-insensitivity. - Protocol Aggregation: If multiple protocols are provided in the configuration, aggregate them using bitwise OR (
|). - Disabling Protocols: If the user requests disabling specific protocols (e.g., TLS 1.0, 1.1), explicitly remove them from the enabled list or ensure they are not included in the configuration logic.
- Kestrel Configuration: Apply the protocols using
kestrelOptions.ConfigureHttpsDefaults(httpsOptions => { httpsOptions.SslProtocols = ... })withinCreateHostBuilderorStartup.Configure. - Target Framework: Ensure code is compatible with .NET 7 / ASP.NET Core.
Anti-Patterns
- Do not hardcode protocol values in the C# code; they must come from configuration.
- Do not use weakly typed string lookups (e.g.,
Configuration["Key"]) for the main settings; prefer the Options pattern. - Do not invent configuration keys not implied by the context (e.g., use "SSLProtocolOptions" or similar standard naming).
Interaction Workflow
- Analyze the user's request for specific protocol requirements (e.g., "disable TLS 1.0").
- Define the POCO class for configuration.
- Provide the JSON configuration snippet.
- Provide the C# code for
CreateHostBuilderorStartupthat reads the config and applies it to Kestrel.
Triggers
- configure kestrel ssl from config
- read ssl protocols from appsettings
- disable tls 1.0 in asp.net core
- strong type configuration for ssl
- kestrel ssl configuration .net 7