NetCoreWebapi双向SSL自建证书演示程序

首先安装证书生成工具 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
重点代码:
 
0
 
本机配置内网域名映射:C:\Windows\System32\drivers\etc\host文件 添加 127.0.0.1 api.testssl.com
 
0
启动服务端访问域名:https://api.testssl.com/home/index 此时浏览器强制要求客户端设置证书,无法访问接口
 
四、创建测试程序 见附件:SSLClientValidationClientDemo
 
0
客户端配置客户端证书,同时对服务端证书进行验证,接口可以调通
 
posted @ 2022-12-27 09:59  狼性法则  阅读(752)  评论(2编辑  收藏  举报