How do I disable HTTPS in ASP.NET Core 2.1 + Kestrel?
In the Startup.cs, remove the middleware
app.UseHttpsRedirection();
If you are using Visual Studio 2017, then you can do the following:
- Go to your project properties. (Right-click > Properties)
- Click on the Debug tab.
- Under Web Server Settings, deselect Enable SSL.
- Save, build, and try again.
This will update the iisExpress settings in the launchSettings.json file.
In the file Properties/launchSettings.json
of your project, look of the key applicationUrl
. You will find something like:
...
"applicationUrl": "https://localhost:5001;http://localhost:5000",
...
Remove the https
endpoint and it's done.
Edit
As noted by @Xorcist the file launchSettings.json
is not published. So, the solution above will only work in a development environment. To disable https and, in general, to configure the urls you want to listen to, both in production and in development, you can also do one of the following:
Use
--urls
parameters ofdotnet run
, will have the same effect as theapplicationUrl
inlaunchSettings.json
. For instance:dotnet run --urls=http://0.0.0.0:5000,https://0.0.0.0:5001
. Again, remove the one you don't want to use.The same can be achieved with the
ASPNETCORE_URLS
enviroment variable.As mentioned in the answer by @Konstantin to this question, in ASP Net Core 2.1 you can also configure Kestrel endpoints in the
appsettings.json
(it seems this cannot be done in 2.0).Finally, the same can also be achieved with the
useUrls
extension methodWebHost.CreateDefaultBuilder(args).UseUrls("http://0.0.0.0:5000")
. I prefer the other solution because this ones hardcodes you're application endpoints, and can't be changed without recompiling the application.
All the possible options are explained in detail in the Microsoft Docs on this.
Update (09 Dec 2020): these options are still valid for Net Core 3.1, as per Microsoft Docs, except for the appsettings one. Maybe it still works but I am not sure.
Update (19 May 2021): these options are still valid for Net 5, as per Microsoft Docs, except for the appsettings one. Maybe it still works but I am not sure.