首先安装证书生成工具 OpenSSL 自行安装
一、创建根证书
  • 生成key文件,输入密码:
  openssl genrsa -des3 -out root.key 
  • 生成请求证书文件,如果安装路径发生改变,可以通过在下面命令后面添加-config openssl.cfg来指明配置文件路径
  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 
  分别在客户端或服务端安装根证书,windows上安装证书时,证书存储可选择“受信任的根证书颁发机构”
根证书的发行者:Common Name 不能跟服务端证书相同,此处案例用的:testssl.com,其余随便写
二、创建服务端证书
  • 生成key文件,输入密码
  openssl genrsa -des3 -out server.key 2048 
  • 生成请求证书文件,如果安装路径发生改变
  openssl req -new -key server.key -out server.csr 
  • 用根证书生成一个10年期证书 server.crt:
  openssl x509 -req -days 3650 -sha1 -extensions v3_req -CA root.crt -CAkey root.key -CAserial root.srl -CAcreateserial -in server.csr -out server.crt 
  • 生成.net core识别的证书文件server.pfx
  openssl pkcs12 -export -in server.crt -inkey server.key -out server.pfx 
 
服务端签发域名:Common Name 不能跟服务端证书相同,此处案例用的:api.testssl.com,其余随便写 同客户端证书
三、创建客户端证书
  • 生成key文件,输入密码
  openssl genrsa -des3 -out client.key 2048 
  • 生成请求证书文件,如果安装路径发生改变
  openssl req -new -key client.key -out client.csr 
  • 用根证书生成一个10年期证书 client.crt:
  openssl x509 -req -days 3650 -sha1 -extensions v3_req -CA root.crt -CAkey root.key -CAserial root.srl -CAcreateserial -in client.csr -out client.crt 
  • 生成.net core识别的证书文件client.pfx
  openssl pkcs12 -export -in client.crt -inkey client.key -out client.pfx 
四、创建服务端
见附件SSLClientValidationDemo
重点代码:
 
 
本机配置内网域名映射:C:\Windows\System32\drivers\etc\host文件 添加 127.0.0.1 api.testssl.com
 
启动服务端访问域名:https://api.testssl.com/home/index 此时浏览器强制要求客户端设置证书,无法访问接口
 
四、创建测试程序 见附件:SSLClientValidationClientDemo
 
客户端配置客户端证书,同时对服务端证书进行验证,接口可以调通
 

NetCoreWebapi双向SSL自建证书演示程序的更多相关文章

  1. AFNetWorking https请求 SSL认证 自制证书

    1.服务器会给一个证书,一般为.pem格式证书 2.将.pem格式的证书转换成.cer格式的证书 打开电脑自带终端 ,进入到桌面  cd Desktop 回车回到桌面Desktop Admin$ 输入 ...

  2. Tomcat 实现双向SSL认证

    大概思路: 使用openssl生产CA证书,使用keytool生产密钥库 实验环境:RHEL6.4+Tomcat8 一.生成CA根证书,并自签名 1.生成CA密钥 # genrsa [产生密钥命令] ...

  3. Tomcate配置单向双向SSL

    1.单向SSL 一.在Tomcate的service.xml文件中放开SSL配置 <!-- <Connector port="8443" protocol=" ...

  4. iOS 的三种自建证书方法https请求相关配置

    如果你的app服务端安装的是SLL颁发的CA,可以使用系统方法直接实现信任SSL证书,关于Apple对SSL证书的要求请参考:苹果官方文档CertKeyTrustProgGuide 这种方式不需要在B ...

  5. 自建证书配置HTTPS服务器

    1.写这篇博客的初衷是因为最近iOS9出来了,苹果官方默认要求使用HTTPS,所以自己想整一个HTTPS服务器,也想好好了解一下HTTPS通信,也知道了HTTPS其实就是在HTTP的基础上加上了SSL ...

  6. Loadrunner对https协议(单双向SSL)的web端性能测试

    1.项目背景 1.1 单双向SSL的含义及部署 单向SSL即我们说到的https协议. 特点是,浏览器需要请求验证服务器证书: 基本含义是:一个安全通信通道,它基于HTTP开发,用于在客户计算机和服务 ...

  7. Https流程,openssl本地自建证书,抓包

    HTTPS:超文本安全传输协议,和HTTP相比,多了一个SSL/TSL的认证过程,端口为443在http(超文本传输协议)基础上提出的一种安全的http协议,因此可以称为安全的超文本传输协议.http ...

  8. 使用loadrunner对https协议(单双向SSL)的web端性能测试 (转)

    1.项目背景 1.1 单双向SSL的含义及部署 单向SSL即我们说到的https协议. 特点是,浏览器需要请求验证服务器证书: 基本含义是:一个安全通信通道,它基于HTTP开发,用于在客户计算机和服务 ...

  9. HTTPS、SSL与数字证书介绍

    在互联网安全通信方式上,目前用的最多的就是https配合ssl和数字证书来保证传输和认证安全了.本文追本溯源围绕这个模式谈一谈. 名词解释 HTTPS:在HTTP(超文本传输协议)基础上提出的一种安全 ...

  10. 老李分享:SSL协议相关证书

    老李分享:SSL协议相关证书   poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.如果对课程感兴趣,请大家咨询qq:9088214 ...

随机推荐

  1. ubuntu下多开terminator的快捷指令

    sudo apt-get install terminator Ctrl+Shift+E 垂直分割窗口 Ctrl+Shift+O 水平分割窗口 F11 全屏 Ctrl+Shift+C 复制 Ctrl+ ...

  2. 「Log」2023.8.28 小记

    序幕 七点多到校,整理博客,开了一篇新做题记录. 整理一下学过知识点,准备阶段复习. 八点整开始打模拟赛,接下来算游记. T1 是个静态区间第 \(k\) 小板子,纯主席树被空间卡掉了,打了 \(60 ...

  3. (萌新向)对于nodejs原型链污染中merge函数的作用的个人理解

    merge函数 function merge(target,source){ for (let key in source){ if (key in source && key in ...

  4. python开发之路【第二章】:python简介和入门

    Python简介 python起源到广泛应用 Python 由吉多・范罗苏姆(Guido van Rossum)缔造.1989 年圣诞季,身处阿姆斯特丹的他,为了打发闲暇时光,决定开发一款新脚本解释程 ...

  5. hbuilderx打包ios应用和上传应用商店最简单方法

    hbuilderx是一个跨平台的开发软件,一般的软件公司,电脑使用的是windows系统. 那么windows有没有办法开发ios应用呢,因为ios的证书和上传,好像都需要mac电脑来完成. 其实,国 ...

  6. Go协程简单学习

    什么是协程? 协程类似于线程,但是比线程更加轻量.一个程序启动会占用一个进程 而一个进程可以拥有多个线程 ,一个线程可以拥有多个协程. 一个进程至少包含一个主线程,一个主线程可以有更多的子线程. 线程 ...

  7. CF757G Can Bash Save the Day? (复健 Day 1)

    先差分为 \(Q(r)-Q(l-1)\),\(Q(i)=\sum_{j=1}^{i} \operatorname{dis}(p_j, x)\). 树上在线路径优先考虑点分树,先想询问怎么做,我们记 \ ...

  8. 【工厂和策略设计模式妙用】解决接口选择与多重if-else 问题

    利用工厂和策略模式解决接口选择与多重if-else问题 在软件开发中,我们经常会遇到需要根据不同的条件选择不同实现的情况.传统的if-else或switch-case方式虽然直观,但随着业务逻辑复杂度 ...

  9. 论文笔记:AlphaEdit: Null-Space Constrained Knowledge Editing for Language Models(AlphaEdit)

      论文发表于人工智能顶会ICLR(原文链接).基于定位和修改的模型编辑方法(针对ROME和MEMIT等)会破坏LLM中最初保存的知识,特别是在顺序编辑场景.为此,本文提出AlphaEdit:   1 ...

  10. Atcoders [ARC133B] Dividing Subsequence 题解

    AT_arc133_b [ARC133B] Dividing Subsequence 模拟赛原题,来写篇题解. 只考虑匹配的状态,根据调和级数的数学知识,匹配的状态数不多,为 \(O(n\log n) ...