如何在宝塔面板启用 ASP.NET CORE 网站并自动申请 HTTPS 证书

要想在 Linux 上部署 ASP.NET CORE 网站,除了使用“宇内流云”大神的 Jexus 之外就是使用 Nginx 对 ASP.NET CORE 网站进行反向代理。

常规的做法是在服务器上部署完成 ASP.NET 运行环境、网站程序之后,使用 Supervisor 对网站程序进程进行守护。网站程序采用固定的端口号,之后在宝塔面板中创建网站并配置反向代理。

宝塔面板是一个不错的产品,为网站提供了一键申请免费 HTTPS 证书的功能。该功能会在网站根目录下生成一个名为 .well-known 的目录,证书的申请、续签均需要依赖该目录。

在配置完成反向代理之后,对 .well-known 目录的访问将会由 ASP.NET CORE 程序进行处理,这就会导致该目录下的文件访问不到了,于是自动申请 HTTPS 证书的功能也就失效了。

有两种方式可以解决该问题:

  1. 修改 Nginx 网站的配置,让对 .well-known 的请求不走反向代理。

  2. 修改 ASP.NET CORE 网站的设置,让其支持对 .well-known 目录下文件的访问。

经过几番折腾,修改 Nginx 网站配置的方式并没有走通,这完全是因为笔者在 Linux 上的造诣浅薄。不过,第二种方案的实现倒是非常容易。

笔者将 ASP.NET CORE 应用发布到了网站的根目录,这也就意味着 .well-known 目录和 wwwroot 目录是平级的。那么,我们仅需要增加一个静态文件中间件即可:

app.UseStaticFiles(new StaticFileOptions
{FileProvider = new PhysicalFileProvider($"{env.ContentRootPath}/.well-known"),RequestPath = "/.well-known",ServeUnknownFileTypes = true
});

以上代码需要在 Configure 方法中调用。其中 ServeUnknownFileTypes = true 代表:即使文件的 MIME 类型未知,也将其发送到客户端。该参数也可以用来解决部分静态文件因后缀过于小众而无法下载的问题。但要注意的是,这个设置会允许用户下载 FileProvider 提供的所有文件包括但不限于 dll 、exe、 db 等。开启此设置前需要小心谨慎。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/293013.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

竟然有如何奇葩的如厕方式......

1 密集恐惧症一下子都好啦(素材来源网络,侵删)▼2 请选择适合您的如厕方式(素材来源网络,侵删)▼3 为什么当年的粉丝没有现在像这样互掐(素材来源网络,侵删)▼4 怕什么…

crm开源系统 tp框架_八个开源的 Spring Boot 前后端分离项目,一定要收藏!

点击蓝色字关注我们前后端分离已经在慢慢走进各公司的技术栈,不少公司都已经切换到这个技术栈上面了。即使贵司目前没有切换到这个技术栈上面,也非常建议大家学习一下前后端分离开发,以免在公司干了两三年,SSH 框架用的滚瓜烂熟&a…

Spark运行原理剖析

http://ihoge.cn/2018/Spark%20Scheduler.html Apache Spark是一个开源的,强大的分布式查询和处理引擎。它提供MapReduce的灵活性和可扩展性,但速度明显更高。 Spark的核心是根据RDD来实现的,Spark Scheduler则为Spark核心实现的重要一环…

硬盘检测工具Smartmontools安装、部署、使用

在服务器管理的实际环境中,硬盘是最容易出现问题及发生故障的硬件,而且硬盘中存储着大量重要的数据,万一出现故障所造成的损失也是无法估计的,轻则需要化费大量的时间与精力去做数据恢复,重则硬盘报废,里面…

【转】Python可变长度的函数参数

http://www.pythoner.com/4.html转载于:https://www.cnblogs.com/liangnote/p/3964062.html

那些奇奇怪怪的男性用品......

1 原来浣熊竟是我自己(素材来源网络,侵删)▼2 能不能对全靠运气(素材来源网络,侵删)▼3 万万没想到是这个结局(素材来源网络,侵删)▼4 真实版出猪车(素材来…

Android之getCacheDir()和getFilesDir()方法区别

getCacheDir()和getFilesDir()方法区别. Activity提供了getCacheDir()和getFilesDir()方法: getCacheDir()方法用于获取/data/data//cache目录getFilesDir()方法用于获取/data/data//files目录//将文件写入SD卡内:获取SDCard的状态:Environment.getExtemalStorageSt…

.Net Minimal API 介绍

Minimal APIs 是.Net 6 中新增的模板,借助 C# 10 的一些特性以最少的代码运行一个 Web 服务。本文脱离 VS 通过 VS Code,完成一个简单的 Minimal Api 项目的开发。创建项目新建一个文件夹,用来管理我们的项目文件,文件夹内启动命令…

access 子窗体 鼠标滚动不工作_Python GUI项目实战(五)明细信息窗体的完善

前言上一节我们实现了明细窗体GUI的搭建,并且设置了查看、修改、添加三种不同的状态,框架搭建好了,内容并没有填充,本节我们继续完善这个项目,将学生信息填充进明细窗体中。一、填充当前学生信息1.需求目前我们已经实现…

弹性式分布数据集RDD——Pyspark基础 (二)

连载中:http://ihoge.cn/tags/pyspark/ title: 弹性式分布数据集RDD——Pyspark基础 (二) date: 2018-04-15 17:59:21 comments: true categories: - Spark tags: - pyspark RDD的内部运行方式 RDD不仅是一组不可变的JVM(…

centos安装kvm

KVM的虚拟化需要硬件支持(如Intel VT技术或者AMD V技术)。是基于硬件的完全虚拟化。而Xen早期则是基于软件模拟的Para-Virtualization,新版本则是基于硬件支持的完全虚拟化。但Xen本身有自己的进程调度器,存储管理模块等,所以代码…

http://blog.csdn.net/myan/article/details/1906

好奇点一下,有惊喜哦转载于:https://blog.51cto.com/bigmac/1275715

java.io.File.setExecutable(boolean executable) 方法来设置所有者对于此抽象路径名执行权限。

java.io.File.setExecutable(boolean executable) 方法来设置所有者对于此抽象路径名执行权限。 声明 以下是 java.io.File.setExecutable(boolean executable) 方法的声明: public boolean setExecutable(boolean executable) 参数 executable -- 设置访问权限为t…

导师都有哪些“秘密”没有告诉你?

全世界只有3.14 % 的人关注了爆炸吧知识真正决定人与人之间的差距的,其实是我们对事物的见识与内心的格局,见识的深浅决定人生的深浅,格局的大小决定了人生之路是宽是窄。今天给大家推荐几个有深度、有想法的公众号,希望能够给你带…

2021年全球知名开源项目大更新

下面简单回顾 2021 年一些带来较大变化和影响的项目更新信息。PHP 8.1.0 正式发布枚举,只读属性,First-class 可调用语法,新的初始化器,纯交集类型,Never 返回类型,Final 类常量,显式八进制数字…

C语言中extern的用法

C语言中的Extern用法 网上有很多帖子问C语言中Extern的用法,而且回答的详细程度各尽不同. 所以我就像写一篇博文来谈谈我对extern的看法,不一定十分恰当,只当大家共勉. 在具体到Extern的用法之前,有两个概念必须要能分清楚&#x…

由逻辑异或运算符而发现的PHP诡异运算符优先级

PHP的逻辑运算符中&#xff0c;xor表示逻辑异或 $a xor $b 结果 如果 $a 和 $b 有且仅有一个为 true&#xff0c;则返回 true&#xff1b;如果都是true 或 false&#xff0c;则返回false。 然而在测试xor运算符时&#xff0c;发现一点问题 错误情况1 <?php$a false xor tr…

mysql workbench_爬虫实例:玩转mysql(预备篇)

考完试的第一篇文章&#xff0c;开心~/1.什么是数据库/数据库是“按照数据结构来组织、存储和管理数据的仓库”。是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。数据库是以一定方式储存在一起、能与多个用户共享、具有尽可能小的冗余度、与应用程…

MongoDB基本命令的使用

成功启动MongoDB后&#xff0c;再打开一个命令行窗口输入mongo&#xff0c;就可以进行数据库的一些操作。 输入help可以看到基本操作命令&#xff1a; show dbs:显示数据库列表 show collections&#xff1a;显示当前数据库中的集合&#xff08;类似关系数据库中的表&#xff0…

RHEL6   Kickstart 无人值守安装

方法&#xff1a;FTPTFTPDHCPKickstartPXE从网络引导系统的做法可以不必从硬盘、软盘或者CD&#xff0d;ROM光盘&#xff0c;而是完全通过网络来引导一台计算机。这对于安装来说很方便&#xff0c;因为它意味着你可以坐在桌子旁边&#xff0c;不必走到机器那里插入CD&#xff0…