В моем методе Startup.cs Configure я вызываю app.UseHsts () и app.UseHttpsRedirection (). При использовании Let's Encrypt мне нужно подавать файлы без расширений в хорошо известную папку по HTTP.
Какой лучший способ добавить исключение для HTTPS при обслуживании файлов из .well-known?
Вот мой метод настройки в Startup.cs
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
app.UseHsts();
}
app.UseHttpsRedirection();
app.UseWellKnownFolderForLetsEncrypt(env);
app.UseAuthentication();
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller}/{action}/{id?}");
});
}
Также вот метод расширения, служащий для передачи статического содержимого из известной папки.
public static class LetsEncryptAppBuilderExtensions
{
public static IApplicationBuilder UseWellKnownFolderForLetsEncrypt(this IApplicationBuilder app, IHostingEnvironment env)
{
var wellKnownFolder = new DirectoryInfo(Path.Combine(env.ContentRootPath, ".well-known")).FullName;
app.UseStaticFiles(new StaticFileOptions
{
FileProvider = new PhysicalFileProvider(wellKnownFolder),
RequestPath = new PathString("/.well-known"),
ServeUnknownFileTypes = true // serve extensionless file
});
return app;
}
}