YARP 作为反向代理中间件,那就无可避免需要使用到 Https 去部署项目,那 YARP 要怎么去实现呢,本来以为 YARP 会有一套自己的实现,在翻阅了资料后发现,根本不是我想的那样,按照 YARP 官方文档的说法,是按照 .Net Core 原本的那一套去实现,好家伙,真的没想到啊,下面我贴出官方原文,大伙看一看,瞧一瞧

  IIS就不多说了,这个毕竟只能在 windows 上使用,下面我说说 在 Kestrel 怎么设置 Https 吧,按照我的惯例,直接贴配置文件

"Kestrel": {
"Endpoints": {
"MySniEndpoint": {
"Url": "https://*:5209",
"SslProtocols": [ "Tls11", "Tls12" ],
"Sni": {
"test1.ysmc.net.cn": {
"Certificate": {
"Path": "[path]\\test1.ysmc.net.cn_server.pfx",
"Password": "pfx密码"
}
},
"test2.ysmc.net.cn": {
"Certificate": {
"Path": "[path]\\test2.ysmc.net.cn_server.pfx",
"Password": "pfx密码"
}
}
}
}
},
//,默认配置,当没有配置的时候,默认回落到这个配置
"Certificates": {
"Default": {
"Path": "[path]\\test1.ysmc.net.cn_server.pfx",
"Password": "pfx密码"
}
}

  因为我们需要配置多个域名,所以使用到了 Sni,下面是官方对一 Sni 的部分介绍,感兴趣的小伙伴可以过去看看,传送门


SNI in configuration

Kestrel supports SNI defined in configuration. An endpoint can be configured with an object that contains a mapping between host names and HTTPS options. The connection host name is matched to the options and they are used for that connection.Sni

The following configuration adds an endpoint named that uses SNI to select HTTPS options based on the host name:MySniEndpoint

HTTPS options that can be overridden by SNI:

The host name supports wildcard matching:

  • Exact match. For example, matches .a.example.orga.example.org
  • Wildcard prefix. If there are multiple wildcard matches then the longest pattern is chosen. For example, matches and .*.example.orgb.example.orgc.example.org
  • Full wildcard. matches everything else, including clients that aren't using SNI and don't send a host name.*

The matched SNI configuration is applied to the endpoint for the connection, overriding values on the endpoint. If a connection doesn't match a configured SNI host name then the connection is refused.


下面一起看看配置后的效果吧,非常的完美

  整个完整的配置文件我也贴出来吧,至于证书怎么申请的,大家有域名的可以到域名服务商里申请免费1年期的,没有域名的话,可以自己改一下hosts 文件 然后自己自签名一个,都是可以的

appsettings.json

{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore": "Warning"
}
},
"Kestrel": {
"Endpoints": {
"MySniEndpoint": {
"Url": "https://*:5209",
"SslProtocols": [ "Tls11", "Tls12" ],
"Sni": {
"test1.ysmc.net.cn": {
"Certificate": {
"Path": "[path]\\test1.ysmc.net.cn_server.pfx",
"Password": "pfx密码"
}
},
"test2.ysmc.net.cn": {
"Certificate": {
"Path": "[path]\\test2.ysmc.net.cn_server.pfx",
"Password": "pfx密码"
}
}
}
}
},
"Certificates": {
"Default": {
"Path": "[path]\\test1.ysmc.net.cn_server.pfx",
"Password": "pfx密码"
}
}
},
"ReverseProxy": {
"Routes": {
"baidu": {
"ClusterId": "baidu",
"Match": {
"Hosts": [ "test1.ysmc.net.cn" ],
"Path": "{**catch-all}"
}
},
"blazor": {
"ClusterId": "blazor",
"Match": {
"Hosts": [ "test2.ysmc.net.cn" ],
"Path": "{**catch-all}"
}
}
},
"Clusters": {
"baidu": {
"LoadBalancingPolicy": "RoundRobin",
"Destinations": {
"baidu": {
"Address": "https://www.baidu.com/"
}
}
},
"blazor": {
"LoadBalancingPolicy": "RoundRobin",
"Destinations": {
"blazor": {
"Address": "https://www.blazor.zone/"
}
}
}
}
}
}

原文链接:https://www.cnblogs.com/ysmc/p/16717580.html

.NET 反向代理-YARP 部署Https(SSL)的更多相关文章

  1. .NET 反向代理-YARP 根据域名转发

    前段时间发布过一个关于 YARP 的简单介绍,感兴趣的小伙伴恭请移步看看 .NET 反向代理-YARP - 一事冇诚 - 博客园 (cnblogs.com) 作为反向代理,必不可少的当然是根据域名代理 ...

  2. haproxy反向代理环境部署(http和https代理)

    操作背景:前方有一台haproxy代理机器(115.100.120.57/192.168.1.7),后方两台realserver机器(192.168.1.150.192.168.1.151,没有公网i ...

  3. .NET 反向代理-YARP

    什么是 YARP YARP (另一个反向代理) 设计为一个库,提供核心代理功能,你可以根据应用程序的特定需求进行自定义. YARP 是使用 .NET的基础架构构建在 .NET上的.YARP 的主要不同 ...

  4. nginx反向代理批量实现https协议访问

    我们进入大多数HTTPS网站ie浏览器都会给出相关提醒了,但我配置了一台HTTPS代理机器发现css与js都加载不了,这个有朋友说是https页面,如果加载http协议的内容,会被认为页面不安全,所以 ...

  5. nginx反向代理+负载均衡+https

    A服务器(192.168.133.1)作为nginx代理服务器 B服务器(192.168.133.2)作为后端真实服务器 访问https://www.test.com请求从A服务器上反向代理到B服务器 ...

  6. Nginx安装配置|Nginx反向代理|Nginx支持HTTPS|Nginx重定向

    Nginx安装配置 可以直接看到最下面的HTTPS. Nginx安装 我的系统如下: No LSB modules are available. Distributor ID: Ubuntu Desc ...

  7. .NET 反向代理 YARP 跨域请求 CORS

    使用过 nginx 的小伙伴应该都知道,这个中间件是可以设置跨域的,作为今天的主角,同样的 反向代理中间件的 YARP 毫无意外也支持了跨域请求设置. 有些小伙伴可能会问了,怎样才算是跨域呢? 在 H ...

  8. .NET 反向代理 YARP 通过编码方式配置域名转发

    前面介绍了 YARP 通过配置文件的方式配置代理转发(传送门),而众所周知,微软的一贯作风就是能通过配置文件做的事情,通过编码的方式也能实现!YARP 也不例外,废话不多说,直接上代码! 首先,参照官 ...

  9. .NET 反向代理 YARP 自定义配置提供程序(Configuration Providers)

    介绍 基本 Yarp 示例显示从 appsettings.json 加载的代理配置.相反,代理配置可以从您选择的源以编程方式加载.您可以通过提供几个实现 IProxyConfigProvider 和 ...

随机推荐

  1. UML图记忆技巧

    什么是UML类图 Class Diagram:用于表示类.接口.实例等之间相互的静态关系 虽然名字叫类图,但类图中并不只有类 记忆技巧 UML箭头方向: 从子类指向父类 我相信 很多同学都会有和我一样 ...

  2. 模电Multisim仿真Rb变化对Q点和电压放大倍数的影响

    一.目的 研究Rb变化对Q点和Au的影响. 二.方法描述 仿真电路如下所示.晶体管采用FMMT5179其参数BF=133,RB=5Ω. (1)分別测量Rb=3MΩ和3.2MΩ时得UCEQ和Au.由于信 ...

  3. for循环 --和复合赋值

    阶乘 1.n!=1x2x3x4x...xn 2.写出一个程序,让用户输入n,然后计算输出n! *变量: *显然读用户的输入需要一个int的n,然后计算的结果需要用一个变量保存,可以是int的facto ...

  4. Aspose最新版文档格式转换使用破解

    Aspose简介 Aspose.Total是Aspose公司旗下全套文件格式处理解决方案,提供最完整.最高效的文档处理解决方案集,无需任何其他软件安装和依赖.主要提供.net.java.C++d三个开 ...

  5. Linux 更改家目录下的目录为英文

    export LANG=en_US xdg-user-dirs-gtk-update

  6. NOI / 1.1编程基础之输入输出全题详解(8515字)

    目录 01:Hello, World! 02:输出第二个整数 03:对齐输出 04:输出保留3位小数的浮点数

  7. Tampermonkey究竟有什么用?

    以具体应用实例加以说明. 目标:在youtube页面上观看视频,发现喜欢的视频,单击按钮就可以下载视频. 但是,youtube页面并未提供这样的按钮及其功能. 实现思路:在浏览器下载youtube页面 ...

  8. rust中的ref

    理解Rust的引用与借用(好文链接) #![feature(core_intrinsics)] fn print_type_of<T>(_: T) { println!("{}& ...

  9. SpringBoot 集成 FreeMarker 导出 Word 模板文件(底部附源码)

    思路解说 word 模板文件(doc 或 docx 文件)另存为 xml 文件 将后缀 xml 改成 html:大部分文档会改成 ftl(FreeMarker 的后缀名),因为 word 文件另存为 ...

  10. MMDetection 使用示例:从入门到出门

    前言 最近对目标识别感兴趣,想做一些有趣目标识别项目自己玩耍,本来选择的是 YOLOV5 的,但无奈自己使用 YOLOV5 环境训练模型时,不管训练多少次 mAP 指标总是为 0,而其它 pytorc ...