NET Core Kestrel部署HTTPS使用SSL证书
ASP.NET Core配置 Kestrel部署HTTPS。现在大部分网站已经部署HTTPS,大家对于安全越来越重视。
今天简单介绍一下ASP.NET Core 部署HTTPS,直接通过配置Kestrel。大家也可以通过前置Nginx来部署HTTPS。
下面直接进入正题。
新建项目并添加引用
新建一个ASP.NET Core Web Application 模板选择空。
新建好项目添加引用 Microsoft.AspNetCore.Server.Kestrel.Https。
Install-Package Microsoft.AspNetCore.Server.Kestrel.Https
如果你的.NET Core SDK 还是1.0 ,那么引用的时候加上版本号Install-Package Microsoft.AspNetCore.Server.Kestrel.Https -Version 1.0.0
生成证书
通过OpenSSL 生成证书
必须先确保安装OpenSSL。
首先自己创建根证书 root 自己做CA也就是发行者。
openssl genrsa -des3 -out root.key
然后按照提示输入密码
openssl req -new -key root.key -out root.csr
输入刚才设置的密码,然后填写一些信息
然后创建一个10年期根证书 root.crt
openssl x509 -req -days 3650 -sha1 -extensions v3_ca -signkey root.key -in root.csr -out root.crt
创建服务器证书
openssl genrsa -des3 -out server.key 2048
openssl req -new -key server.key -out server.req
openssl x509 -req -days 730 -sha1 -extensions v3_req -CA root.crt -CAkey root.key -CAserial root.srl -CAcreateserial -in server.csr -out server.crt
openssl pkcs12 -export -in server.crt -inkey server.key -out server.pfx
最终得到的server.pfx 就是可以用来在配置HTTPS。
将server.pfx 复制到项目根目录
添加NuGet包
nuget中查找然后再程序中添加引用Microsoft.AspNetCore.Server.Kestrel.Https
然后打开Program.cs 更改代码如下:


public class Program
{
public static void Main(string[] args)
{
var host = new WebHostBuilder()
.UseKestrel(option=> {
option.UseHttps("server.pfx", "linezero");
})
.UseUrls("https://*:443")
.UseContentRoot(Directory.GetCurrentDirectory())
.UseIISIntegration()
.UseStartup<Startup>()
.Build(); host.Run();
}
}


然后选择使用 Kestrel 运行。
打开浏览器输入 https://localhost/
由于证书是自己生成,显示红标也就是没有得到验证。
附测试用证书下载:server.pfx
NET Core Kestrel部署HTTPS使用SSL证书的更多相关文章
- NET Core Kestrel部署HTTPS
NET Core Kestrel部署HTTPS ASP.NET Core配置 Kestrel部署HTTPS.现在大部分网站已经部署HTTPS,大家对于安全越来越重视. 今天简单介绍一下ASP.NET ...
- ASP.NET Core Kestrel部署HTTPS
ASP.NET Core配置 Kestrel部署HTTPS.现在大部分网站已经部署HTTPS,大家对于安全越来越重视. 今天简单介绍一下ASP.NET Core 部署HTTPS,直接通过配置Kestr ...
- NET Core Kestrel部署HTTPS 一个服务器绑一个证书 一个服务器绑多个证书
.net core 3.0 网站发布到centos后,绑定ssl证书,一个服务器绑一个证书,一个服务器绑多个证书 开始之前:对于windows服务器不存在这个问题,在iis中绑定证书是非常简单的一件事 ...
- IIS 安装 .net core 绑定为 https 使用SSL证书
前提条件: 自己服务器(Windows Server 2016)运行 dotnet .\Web****.dll 服务是可以使用http访问的 但由于实际情况必须使用https 思想历程,但未用: 1. ...
- Https系列之二:https的SSL证书在服务器端的部署,基于tomcat,spring boot
Https系列会在下面几篇文章中分别作介绍: 一:https的简单介绍及SSL证书的生成二:https的SSL证书在服务器端的部署,基于tomcat,spring boot三:让服务器同时支持http ...
- .NET 部署Https(SSL)通过代码方式
在上一个文章中,传送门,给大家介绍了怎么在配置文件中使用 Kestrel 部署 Https,正好今天有小伙伴稳问到:可以通过代码的方式实现 Kestrel 的 Https 的部署吗?答案是肯定的,我们 ...
- Https系列之四:https的SSL证书在Android端基于okhttp,Retrofit的使用
Https系列会在下面几篇文章中分别作介绍: 一:https的简单介绍及SSL证书的生成二:https的SSL证书在服务器端的部署,基于tomcat,spring boot三:让服务器同时支持http ...
- 部署国密SSL证书,如何兼容国际主流浏览器?
国密算法在主流操作系统.浏览器等客户端中,还没有实现广泛兼容.因此,在面向开放互联网的产品应用中,国密算法无法得到广泛应用.比如,在SSL证书应用领域,由于国际主流浏览器不信任国密算法,如果服务器部署 ...
- 使用acme.sh自动申请、续期、部署免费的SSL证书
参考文档:https://github.com/acmesh-official/acme.sh 一个使用纯shell操作的免费SSL证书申请部署工具. 免费的SSL证书由以下CA机构提供: ZeroS ...
随机推荐
- jqGrid 手册 - 搜索
搜索 类型: colModel Options Toolbar Searching Custom Searching Single field searching Advanced Searching ...
- Android stadio 生成项目 Cannot find System Java Compiler. Ensure that you have installed a JDK (not just a JRE)
解决方法 File-->Project-->Structrue-->SDK Location-->JDK location Use embedded JDK 前面勾去掉,指定一 ...
- 在 CentOS 上编写 init.d service script [转]
背景:之前编写了一些脚本,下载了一些开源软件,想把它们做成系统服务,通过 service your_prog_name start 这样的方式来后台运行,并在开机时自动启动.在了解了 daemon 命 ...
- NOIP2013花匠(波动序列)
波动序列的定义不用多说,下面给出波动序列的求法. #include<iostream> #include<cstdio> #define N 100002 using name ...
- QBXT Day2主要是数据结构(没写完先占坑)
简单数据结构 本节课可能用到的一些复杂度: O(log n). 1/1+1/1/.....1/N+O(n log n) 在我们初学OI的时候,总会遇到这么一道题. 给出N次操作,每次加入一个数,或者询 ...
- hdu 2328 Corporate Identity(kmp)
Problem Description Beside other services, ACM helps companies to clearly state their “corporate ide ...
- [BOI2007]Mokia 摩基亚(CDQ分治)
upd:\((x1,y1)(x2,y2)\)表示以\((x1,y1)\)为左上端点 \((x2,y2)\)为右下端点的矩形 本来以为是一道二位树状数组的模板,但是看数据范围之后就放弃了,边界既然到了2 ...
- Python3 与 C# 并发编程之~进程先导篇
在线预览:http://github.lesschina.com/python/base/concurrency/1.并发编程-进程先导篇.html Python3 与 C# 并发编程之- 进程篇 ...
- 搭建简易的WebServer(基于pyhton实现简易Web框架 使用socket套接字)
1. 使用web底层socket的方式实现简易服务器的搭建,用来理解学习 # 1.导入socket模块 import socket import re import gevent import sys ...
- 【洛谷P1896】互不侵犯
题目大意:给定 N*N 的棋盘,一共放 K 个国王,一共有多少种方法. 题解: i&i<<1 判断是否每个 1 的位置之间都有 0. i&j<<1 判断 i 中 ...