NET Core Kestrel部署HTTPS 一个服务器绑一个证书 一个服务器绑多个证书
.net core 3.0 网站发布到centos后,绑定ssl证书,一个服务器绑一个证书,一个服务器绑多个证书
开始之前:对于windows服务器不存在这个问题,在iis中绑定证书是非常简单的一件事,不是本篇博客讨论的范围,绑定多个证书一样
3.0中指定url的方式可以通过在配置文件中加urls:"http://*:5000"这种方式来指定
发布到centos的.net core网站我是用 Kestrel托管的。这里也只针对这一种情况进行描述
1,在program.cs中CreateHostBuilder 替换成如下内容:
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>()
.UseKestrel((context, options) =>
{
options.Configure(context.Configuration.GetSection("Kestrel"));
});
});
这段代码描述的是Kestrel服务的option从配置文件中读取
紧接着在startup中增加 app.UseHttpsRedirection(); app.UseHsts();//默认是开启的,如果是,就不用管它
2,在配置文件appsettings.json中增加,这是单独的配置节点 ,其中path,是pfx文件的位置,password是证书的密码,在阿里云申请的证书,下载iis版的就有这两
"Kestrel": {
"Limits": {
"MaxRequestBodySize": ,
"MaxRequestBufferSize": ,
"MaxRequestLineSize":
},
"Endpoints": {
"Https": {
"Url": "https://*:443",
"Certificate": {
"Path": "/home/cert/www.xxxx.pfx",
"Password": "xxx"
}
}
}
}
这里的配置项可以参考微软的文档,基本上大多数需要代码显式指定的配置在appsettings.json中都是可以直接配置的
如果一台服务器里边只有一个需要ssl证书的网站,那么到这里,问题就解决了。
很不幸,我的目标是在一台服务器里边使用两个ssl证书,分别对两个网站做ssl传输加密,在查过微软的部分文档后,没有找到相关的解决方案,反而是找到了nginx。在linux用nginx可以解决一台服务器绑定两个ssl的问题
首先是安装:yum install nginx,一路y,安装完毕后,nginx的主配置文件是 /etc/nginx/nginx.conf 直接修改这个文件,分别对N个需要ssl的站点进行配置,如下,监听端口都是443,区别是server_name ,根据需要配置的域名,分别写对应的server_name,
加粗部分是需要特别关注的,pem,和key这两 如果是在阿里云申请的ssl,下载的时候选择 nginx版的,就包含下边需要的两文件,可以放到任意位置,这里填写的是这两文件的路径,location里边的内容是转发的本地端口对应的就是域名对应的子网站。子网站必须是发布了的,可访问的站点,另外需要特别注意一下子网站不需要任何证书,只需要可以访问即可
server {
listen ;
server_name serverName1.com;
ssl on;
root '/';
ssl_certificate 'xxxx.pem';
ssl_certificate_key 'xxxx.key';
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 10m;
ssl_ciphers PROFILE=SYSTEM;
ssl_prefer_server_ciphers on;
include /etc/nginx/default.d/*.conf;
location / {
proxy_pass http://127.0.0.1:5000;
}
error_page 404 /404.html;
location = /40x.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}
server {
listen ;
server_name serverName2.com;
ssl on;
root '/';
ssl_certificate 'xxxx.pem';
ssl_certificate_key 'xxxx.key';
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 10m;
ssl_ciphers PROFILE=SYSTEM;
ssl_prefer_server_ciphers on;
include /etc/nginx/default.d/*.conf;
location / {
proxy_pass http://127.0.0.1:5001;
}
error_page 404 /404.html;
location = /40x.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}
然后启动nginx服务 systemctl restart nginx.service .如果配置文件写的有问题,服务会启动失败,错误日志位置在nginx.conf中可以找到
服务启动完毕后,就可以看到效果了
NET Core Kestrel部署HTTPS 一个服务器绑一个证书 一个服务器绑多个证书的更多相关文章
- 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使用SSL证书
ASP.NET Core配置 Kestrel部署HTTPS.现在大部分网站已经部署HTTPS,大家对于安全越来越重视. 今天简单介绍一下ASP.NET Core 部署HTTPS,直接通过配置Kestr ...
- 部署asp.net core Kestrel 支持https 使用openssl自签ssl证书
通过openssl生成证书 openssl req -newkey rsa:2048 -nodes -keyout my.key -x509 -days 365 -out my.cer openssl ...
- 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日. 在目前介 ...
- .NET 部署Https(SSL)通过代码方式
在上一个文章中,传送门,给大家介绍了怎么在配置文件中使用 Kestrel 部署 Https,正好今天有小伙伴稳问到:可以通过代码的方式实现 Kestrel 的 Https 的部署吗?答案是肯定的,我们 ...
- 一次部署HTTPS的相关事件引发的思考
前言: 上周五快要下班的时候,突然收到通知客户希望了解一下部署HTTPS的流程,这种事情谁听了都会有几分诧异的.因为这件事虽然和工作有一定的相关度,但平时不会走这个方向,实际上也较少接触.此外,客户手 ...
- 结合Jexus + Kestrel 部署 asp.net core 生产环境
ASP.NET Core 是微软的全新的框架.这一框架的目标 ︰ 跨平台 针对云应用优化 解除 System.Web 的依赖. 获得下面三个方面的优势,你可以把它认为是一个C# 版本的NodeJS: ...
随机推荐
- MacOS下SpringBoot基础学习
学于黑马和传智播客联合做的教学项目 感谢 黑马官网 传智播客官网 微信搜索"艺术行者",关注并回复关键词"springboot"获取视频和教程资料! b站在线视 ...
- ARC 093 F Dark Horse 容斥 状压dp 组合计数
LINK:Dark Horse 首先考虑1所在位置. 假设1所在位置在1号点 对于此时剩下的其他点的方案来说. 把1移到另外一个点 对于刚才的所有方案来说 相对位置不变是另外的方案. 可以得到 1在任 ...
- intel:spectre&Meltdown侧信道攻击(二)
上面一篇介绍了spectre&meltdown基本原理和简单的demo方案,今天继续学习一下该漏洞发现团队原始的POC:https://spectreattack.com/spectre.pd ...
- Redis 超详细总结笔记总
作者 | 王爷科技 来源 | www.toutiao.com/i6713520017595433485 1. Redis 简介 Redis 是完全开源免费的,遵守 BSD 协议,是一个高性能的 key ...
- Linux 下使用 killall 命令终止进程的 8 大用法
Linux 的命令行提供很多命令来杀死进程.比如,你可以向 kill 命传递一个PID来杀死进程:pkill 命令使用一个正则表达式作为输入,所以和该模式匹配的进程都被杀死. 但是还有一个命令叫 ki ...
- Asp.Net Core 3.0的依赖注入改变
Asp.Net Core 3.0出来很久了,预览版的时候就被我偶像Lemon大人,带着尝试摸索了一下这个 那么Asp.Net Core 3.0和Asp.Net Core 2.X到底有哪些区别呢? As ...
- JQuery插件,轻量级表单模型验证
附上源码和Demo段 var validataForm = (function(model) { model.Key = "[data-required='true']"; mod ...
- js如何从一个数组中随机取出n个不同且不重复的值
前言 一位正在学习前端的菜鸟,虽菜,但还未放弃. 给大家画张图了解思路 以下是代码 function randomArr(arr,num){ let newArr = [];//创建一个新数组 for ...
- 【USACO02FEB】Rebuilding Roads 重建道路 题解(树形DP)
题目链接 题目大意:问使含有$p$个节点的子树分离至少需要去掉几条边. ------------------ 设$f[i][j]$表示以$i$为根的子树保留$j$个节点所去掉的最少边数. 初始化$f[ ...
- excel-删除
问题[1]:删除不整齐数据. 1 编号 单词本身 词性 命名实体 依存句法父节点 依存句法 谓词 语义角色 2 0 < wp O 1 WP _ - 3 1 弄臣 n O -1 HED _ - 4 ...