TCPTLS消息加密——C#

TLS(SSL的继任者),是一种常用的安全协议,广泛应用在网络上,位于TCP层以上,应用层以下。利用.Net的包很容易实现安全的TCP传输。主要步骤有.X509证书的生成和SslStream的应用。

.X509证书

.X509证书是一种常见的证书标准,这里利用通过微软提供的makecert 工具得到测试证书,具体过程如下:先进入到vs2017的命令行状态,即:开始-->程序-->Microsoft Visual Studio 2017-->Visual Studio Tools-->Visual Studio 2017 命令提示键入:
	makecert -r -pe -n "CN=MyServer" -ss My -sky exchange
解释一下:makecert.exe是一个专门用来制作证书的小工具,上面一行的意思就是制作一个CN=MyServer的服务器证书,默认存储在CurrentUser"My这个位置,同时这个证书标识为可导出。(详细的MakeCert参数可参见http://msdn.microsoft.com/zh-cn/bfsktky3(vs.80).aspx)
再输入:`makecert -r -pe -n "CN=MyClient" -ss My -sky exchange`
接下来将证书导入:
开始-->运行-->MMC : 添加/删除管理单元 文件->添加/删除管理单元  证书->添加->我的用户账户 导入

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

将证书导入受信任的列表里:
开始->运行->certmgr.msc    将个人 证书里的生成证书,复制进受信任的根证书颁发机构 证书部分完成。

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

服务器端实现

主要有以下两个语句(本篇文章默认了解C#的TCP服务器实现)
SslStream sslStream = new SslStream(client.GetStream(), false);//安全套接字 Stream
sslStream.AuthenticateAsServer(serverCertificate, true, SslProtocols.Tls, true);//证书验证,具体参数信息,见.Net的注释

客户端实现

	sslStream.AuthenticateAsClient("MyServer", certs, SslProtocols.Tls, true);//双向
	sslStream.AuthenticateAsClient("MyServer");//验证证书,单向
	可以选择

代码

源码见GitHub:https://github.com/wenwenpan/Web.git
文件说明:本次文件为:
在这里插入图片描述
第一个为客户端,第二个为服务端,IP为本地回环127.0.0.1 用于测试:

参考

证书:http://www.cnblogs.com/whtydn/archive/2009/12/23/1630750.html
证书:https://www.cnblogs.com/hhhh2010/p/3630807.html
主要参考: https://blog.csdn.net/wuyb_2004/article/details/51393290
SslStream:https://docs.microsoft.com/en-us/dotnet/api/system.net.security.sslstream?view=netframework-4.7.2

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值