当前位置: 首页 > news >正文

ASP .Net Core创建一个httppost请求并添加证书

ASP .Net Core创建一个httppost请求并添加证书

创建.net Core程序,使用自签名证书,可以处理https的get和post请求。

创建证书

创建自签名证书的流程可以在这里查看:

https://blog.csdn.net/GoodCooking/article/details/139815278

创建完毕后:
在这里插入图片描述

继续输入命令,创建.pfx 证书,

openssl pkcs12 -export -out myNameZhengShu\cert.pfx -inkey myNameZhengShu\key.pem -in myNameZhengShu\cert.pem

在这里插入图片描述输入密码123456,当然是看不到的啦

在这里插入图片描述在这里插入图片描述

一共是输入三次123456
最后生成cert.pfx 文件
在这里插入图片描述

配置.net Core

将证书放到.netCore的程序路径中
在这里插入图片描述

修改.netCore的程序的Program.cs 文件的内容

using System.Security.Cryptography.X509Certificates;var builder = WebApplication.CreateBuilder(args);// Add services to the container.
builder.Services.AddControllers();
// Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle
builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerGen();var app = builder.Build();// Configure the HTTP request pipeline.
if (app.Environment.IsDevelopment())
{app.UseSwagger();app.UseSwaggerUI();
}app.UseHttpsRedirection();app.UseAuthorization();app.MapControllers();// 配置 Kestrel 使用 SSL 证书
app.UseHttpsRedirection();
app.Use(async (context, next) =>
{var certificate = new X509Certificate2(Path.Combine(AppContext.BaseDirectory, "myNameZhengShu", "cert.pfx"),"123456");context.Connection.ClientCertificate = certificate;await next();
});app.Run();

重要的是这个,myNameZhengShu 是证书的路径,我这里是.exe程序的myNameZhengShu 的文件夹下,证书的密码是123456,证书的名称是cert.pfx

app.UseHttpsRedirection();
app.Use(async (context, next) =>
{var certificate = new X509Certificate2(Path.Combine(AppContext.BaseDirectory, "myNameZhengShu", "cert.pfx"),"123456");context.Connection.ClientCertificate = certificate;await next();
});

然后添加一个http的post请求,创建一个新的.cs文件并拷贝粘贴下面的内容:
访问方式是:https://localhost:7267/User?username=123
请求结果是:123, 你好,现在是:2024-06-20 22:46:01

using Microsoft.AspNetCore.Mvc;
namespace TSLServerTest.Controllers
{[ApiController][Route("[controller]")]public class UserController : ControllerBase{// POST请求的示例[HttpPost]public ActionResult<string> Post([FromQuery] string username){// 获取当前时间DateTime currentTime = DateTime.Now;// 构建返回的字符串string responseMessage = $"{username}, 你好,现在是:{currentTime.ToString("yyyy-MM-dd HH:mm:ss")}";return Ok(responseMessage);}}
}

验证证书生效

在这里插入图片描述

在post man中发送http请求发送不了

在这里插入图片描述https就可以哦
在这里插入图片描述

相关文章:

  • 操作系统——信号
  • 椭圆曲线加密算法中公钥与私钥互换性分析
  • CSS 变量的优势
  • 移动语义和完美转发
  • java的构造方法——无参构造方法
  • 【JavaEE】Spring Boot MyBatis详解(二)
  • 企业为什么要进行数据资产管理工作:价值与案例剖析
  • 在Elasticsearch中-SpaceJam一个全文搜索的实例
  • Sping源码(九)—— Bean的初始化(非懒加载)— Bean的创建方式(factoryMethod)
  • 深(广)度优先遍历
  • STM32单片机-FLASH闪存
  • LC15.三数之和、LC22括号生成
  • OpenCV--滤波器(一)
  • Redis缓存的一些概念性问题
  • Milvus跨集群数据迁移
  • JavaScript-如何实现克隆(clone)函数
  • 《网管员必读——网络组建》(第2版)电子课件下载
  • angular2开源库收集
  • Java 11 发布计划来了,已确定 3个 新特性!!
  • LeetCode18.四数之和 JavaScript
  • MySQL的数据类型
  • Python socket服务器端、客户端传送信息
  • Vue2 SSR 的优化之旅
  • 前端面试之闭包
  • 如何解决微信端直接跳WAP端
  • 以太坊客户端Geth命令参数详解
  • ​Java并发新构件之Exchanger
  • # 移动硬盘误操作制作为启动盘数据恢复问题
  • #13 yum、编译安装与sed命令的使用
  • #设计模式#4.6 Flyweight(享元) 对象结构型模式
  • (2)(2.4) TerraRanger Tower/Tower EVO(360度)
  • (C语言)深入理解指针2之野指针与传值与传址与assert断言
  • (机器学习的矩阵)(向量、矩阵与多元线性回归)
  • (十三)Java springcloud B2B2C o2o多用户商城 springcloud架构 - SSO单点登录之OAuth2.0 根据token获取用户信息(4)...
  • (未解决)macOS matplotlib 中文是方框
  • (转)编辑寄语:因为爱心,所以美丽
  • *setTimeout实现text输入在用户停顿时才调用事件!*
  • .NET Core引入性能分析引导优化
  • .NET Framework 服务实现监控可观测性最佳实践
  • .Net 路由处理厉害了
  • .Net语言中的StringBuilder:入门到精通
  • //TODO 注释的作用
  • @modelattribute注解用postman测试怎么传参_接口测试之问题挖掘
  • @PreAuthorize注解
  • [ Socket学习 ] 第一章:网络基础知识
  • [2023年]-hadoop面试真题(一)
  • [AIGC] 使用Curl进行网络请求的常见用法
  • [C#]C# winform部署yolov8目标检测的openvino模型
  • [C/C++]_[初级]_[关于编译时出现有符号-无符号不匹配的警告-sizeof使用注意事项]
  • [C++核心编程](四):类和对象——封装
  • [DEBUG] spring boot-如何处理链接中的空格等特殊字符
  • [Docker]三.Docker 部署nginx,以及映射端口,挂载数据卷
  • [LeetCode周赛复盘] 第 310 场周赛20220911
  • [leveldb] 2.open操作介绍
  • [Linux]创建新用户并授予root权限