Asp.net Core Kestrel 免费实现https
0、概述
先了解下https是个啥: https://www.bilibili.com/video/BV1j7411H7vV
so!只要给我们的web服务器配置一个证书就行了,证书可以买,也可以用免费的Let's Encrypt,此证书提供商是多个牛X大公司为了推进全球https化搞出来的,所以不用担心免费的会有啥问题。唯一的问题是90天有效期,所以你得提前免费续签,当然有办法容易的实现自动续签。
为了实现自动化的证书申请、发放、续签、删除.....各种证书相关的功能,所以Let's Encrypt提出了个ACME协议,不同编程语言都可以实现这个协议来完成这些工作。本文要讲的内容就是这种方式。某只大牛在github上开源了一个库,这个库实现了前面说的这个什么协议,实现了自动申请证书,自动续签、自动与asp.net core内置Kestrel集成。仅仅需要几行配置。
asp.net core 有多种发布模式

这种方式需要给IIS或Nginx..配置证书,其中IIS首选用win-acme,这个工具也实现上面说的ACME协议,使用它可以很容易在IIS中安装Let's Encrypt证书,并实现自动续签

我现在用的这种方式,服务器上啥都不装,直接一个发布好的asp.net core程序(一个文件夹)丢到服务器上,启动里面的.exe就可以运行。主要是因为简单,方便移动。
在这种方式下,如果能在应用程序内部实现ACME协议自动申请证书然后配置给Kestrel,并实现自动续签,就完美了。然后github上搜出俩比较成熟的:ACMESharpCore LetsEncrypt ,我使用的后面这种方式。我只是用的windowserver发布的,应该支持跨平台的,因为它只是一个库
1、创建项目
首先创建一个asp.net core 3.1的程序(mvc razorPages都行)
2、添加包引用
然后添加nuget包 paket add McMaster.AspNetCore.LetsEncrypt --version 0.3.0
3、启动配置
然后在Startup中配置
1 using Microsoft.Extensions.DependencyInjection;
2
3 public class Startup
4 {
5 public void ConfigureServices(IServiceCollection services)
6 {
7 services.AddLetsEncrypt();
8 }
9 }
下面是配置文件
1 // appsettings.json
2 {
3 "LetsEncrypt": {
4 // Set this to automatically accept Let's Encrypt's terms of service.
5 // If you don't set this in config, you will need to press "y" whenever the application starts
6 "AcceptTermsOfService": true,
7
8 // 申请证书要绑定的域名,阔以多个,不能写端口哦
9 "DomainNames": [ "example.com", "www.example.com" ],
10
11 // You must specify an email address to register with letsencrypt.org
12 "EmailAddress": "it-admin@example.com"
13 },
14 "urls":"http://*;https://*"
15 }
4、发布

根据你的方式选,我这里选择独立模式,发布后的程序里就自动包含了.net core运行时,所以包比较大,但是不需要服务器安装.net core,发布好的包放哪都能直接运行。
目标运行时看着选,也可以发布层跨平台的通用包,详细的看官网吧。
5、运行

找到那个xxx.exe 直接启动就可以了,内部那个库会自动去申请证书并设置到Kestrel上,申请时会验证域名,我估计就是简单访问下这个域名看能不能正常访问,所以一定要保证你配置的域名都能正常访问。如果一切正常就可以通过https访问了。估计到期前会自动续签证书,得3个月后才能验证。
6、最后
做个备忘,回头看这种方式真TM简单,引用库、配置、发布。文件夹复制到哪都能运行,还自带https。比如 做点微信小程序开发 美滋滋
Asp.net Core Kestrel 免费实现https的更多相关文章
- ASP.NET Core Kestrel 中使用 HTTPS (SSL)
在ASP.NET Core中,如果在Kestrel中想使用HTTPS对站点进行加密传输,可以按照如下方式 申请证书 这一步就不详细说了,有免费的和收费的,申请完成之后会给你一个*.pfx结尾的文件. ...
- ASP.NET Core 1.0 部署 HTTPS (.NET Framework 4.5.1)
var appInsights=window.appInsights||function(config){ function r(config){t[config]=function(){var i= ...
- ASP.NET Core 1.0 部署 HTTPS
ASP.NET Core 1.0 部署 HTTPS ASP.NET Core 1.0 部署 HTTPS (.NET Framework 4.5.1) 提示 更新时间:2016年01月23日. 在目前介 ...
- AServer - 基于Asp.net core Kestrel的超迷你http服务器
AServer是基于ASP.NET Core Kestrel封装的一个超迷你http服务器.它可以集成进你的Core程序里,用来快速的响应Http请求,而不需要集成整个ASP.NET Core MVC ...
- ASP.NET Core Kestrel部署HTTPS
ASP.NET Core配置 Kestrel部署HTTPS.现在大部分网站已经部署HTTPS,大家对于安全越来越重视. 今天简单介绍一下ASP.NET Core 部署HTTPS,直接通过配置Kestr ...
- ASP.NET Core Kestrel 随机404错误
一.Bug 出现 最近遇到一个很诡异的bug,Visual Studio 2017调试ASP.NET Core 2.2 Web程序的时候,随机性的出现404错误.如下图 事实上这个css文件是存在的, ...
- .NET 6学习笔记(7)——ASP.NET Core通过配置文件启用HTTPS
本质上我还是一个Windows App Developer,所以虽然会做一些ASP.NET Core的工作,但通常这些ASP.NET Core的程序会托管在Windows Service上,并且大部分 ...
- 部署asp.net core Kestrel 支持https 使用openssl自签ssl证书
通过openssl生成证书 openssl req -newkey rsa:2048 -nodes -keyout my.key -x509 -days 365 -out my.cer openssl ...
- 如何在docker配置asp.net core https协议
本文参考自<Step by step: Expose ASP.NET Core over HTTPS with Docker> 自从微软发布.net core以来,就在许多社区掀起了讨论, ...
- ASP.NET Core的Kestrel服务器(转载)
Kestrel是一个基于libuv的跨平台ASP.NET Core web服务器,libuv是一个跨平台的异步I/O库.ASP.NET Core模板项目使用Kestrel作为默认的web服务器.Kes ...
随机推荐
- PME算法简单Python实现
技术背景 在前面的两篇博客中,我们分别介绍了Ewald算法求解静电势能和基于格点拉格朗日插值法的PME算法.在多种计算优化算法(Ewald求和.快速傅里叶变换.格点拉格朗日插值.截断近似)的加持下,使 ...
- Python 爬取广州商学院新闻----测试版
Python 爬取广州商学院新闻----测试版 程序简述:抓取广州商学院新闻栏目的全部新闻内容 开发环境:PyCharm Community Edition 爬取连接:http://news.gzcc ...
- Zipkin+Sleuth调用链监控集成和使用
背景与需求 跨微服务的API调用发生异常,要求快速定位出问题出在哪里. 跨微服务的API调用发生性能瓶颈,要求迅速定位出性能瓶颈. 集成 整体结构 整体机构为C/S模式,客户端(Sleuth)来监控采 ...
- P3920 WC2014 紫荆花之恋
P3920 WC2014 紫荆花之恋 毒瘤题目,动态点分树. 前置科技点 替罪羊树 高速平衡树(除去 fhq_treap 和 splay 之外的所有平衡树) 约定 \(dis(u,v)\) 为原树上 ...
- 一个.NET开源、快速、功能丰富的跨平台阅读服务器
前言 今天大姚给大家分享一个基于.NET开源的快速.功能丰富的跨平台阅读服务器,它的设计初衷是提供一个全面的解决方案,满足用户的所有阅读需求.用户可以设置自己的服务器,并与朋友和家人分享阅读收藏:Ka ...
- 数据库研发人员必看的MySQL 8.0新特性
本文汇总了MySQL8.0 面向开发的新特性,总共有12个新特性,有想快速了解8.0新特性的朋友,可以看一下哈文章目录:1.公用表达式支持-CTE2.窗口函数3.表达式作为默认值:4.CHECK支持5 ...
- 前端截图取色工具Snipaste
在Web前端开发中,在写页面CSS样式时经常要用工具去取色来设置字体颜色.背景颜色.边框颜色等等,以还原设计图的最佳效果.今天给大家推荐的取色工具是Snipaste.Snipaste 是一个简单但强大 ...
- Solon(Spring 的替代方案)最近半年下载量突破 1200万!
不断突破 2023年04月,单月破100万(Maven 中央仓库单月下载量) 2023年06月,单月破200万 2023年11月,单月破250万 2024年11月,最近半年下载量突破 1200万 So ...
- elasticsearch之python操作
总结使用python对于elasticsearch的常用操作 安装 pip install elasticsearch 2. 连接 from elasticsearch import Elastics ...
- Blazor 组件库 BootstrapBlazor 中Circle组件介绍
组件介绍 Circle进度环组件,是一个图表类组件.一般有两种用途: 显示某项任务进度的百分比. 统计某些指标的占比. 它的样子如下: 它的代码如下: <Circle Width="2 ...