I have created an sample ASP.NET Core
application using command line:
dotnet new
and tried to run it utilizing command:
dotnet run
But, when opening the URL in the browser, it complains that the SSL is invalid.
I can run the program using Visual Studio
full version without any problem, but can not run it using command line:
dotnet run
Seems that Kestrel
which is run by command dotnet run
needs extra configurations.
Now, the question is how can I run my ASP.NET Core
application over https
using Kestrel
?
I'm on Dot Net Core 2.2
and Visual Studio 2019
It seems that IIS Express
does some works behinds the scense which include configuration of a SSL
certification. So, I concentrated on ASP.NET Core
's internal hosting component which is Kestrel
.
Firstly, I created and SSL certificate using PowerShell
by help of this command:
New-SelfSignedCertificate -DnsName localhost -CertStoreLocation "cert:\LocalMachine\My"
This command creats a certification which I can see it through management console / certificates
program. For more information see this. After creating a new certificate, you are required to export it as a pfx
file. To do so in the management console use follwing steps:
Certificates
snap-in to the management console.Personal\Certifcates
pfx
is automatically selected. Click "Next"Next step is to configure ASP.NET Core to use the pfx
file which is described here:
public static IWebHost BuildWebHost(string[] args) => WebHost.CreateDefaultBuilder(args) .UseStartup < Startup > () .UseKestrel((hostingContext, options) => { if (hostingContext.HostingEnvironment.IsDevelopment) { options.Listen(IPAddress.Loopback, 9001); options.Listen(IPAddress.Loopback, 9002, listenOptions => { listenOptions.UseHttps("certificate.pfx", "password"); }); } }) .Build();
Now, the problem should be resolved. If not, try the certificate which is created by the IIS Express
. This is also available in management console.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With