I have been trying to add https to my website, which is bound to a domain. Therefore, I tried certbot to generate my certificates. I have tested those certificates on my mock server written in js. There, all I had to do was provide specific options to Express server like following:
var options = {
key: fs.readFileSync('privkey.pem'),
cert: fs.readFileSync('fullchain.pem')
};
Poof, a lock appeared at my browser's link tab, saying my website is secure. Now I wanted to move it to ASP.NET Core, so I found kestrel options, where I can provide my certificate:
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>();
webBuilder.ConfigureKestrel(o =>
{
o.ConfigureHttpsDefaults(ohttps =>
{
ohttps.ClientCertificateMode = Microsoft.AspNetCore.Server.Kestrel.Https.ClientCertificateMode.RequireCertificate;
ohttps.ServerCertificate = new System.Security.Cryptography.X509Certificates.X509Certificate2(...);
});
});
});
However it seems like I only have to provide X509 Certificate, which is a public certificate. Isn't a private certificate needed for server to provide safe connection? Do I have to use a private certificate? How to implement it in ASP.NET Core? (3.1)