WCF 匿名客户端证书安全验证
之前介绍过X.509证书的一些知识,http://xiaogangblog.com/archives/224 可以参考这篇.
本篇要介绍的是 匿名客户端证书验证,简单的说就是 服务器端提供证书签名, 客户端匿名调用.
匿名客户端验证有什么用?可以建立相对安全的链接,对于一些不是很重要的数据传输。避免了每次让客户端都验证证书的麻烦。也可结合前文讲的自定义用户名密码来提升安全级别。
(现在的购买正规的证书服务还是很贵滴)
建立服务端
代码很简单:
默认的代码,主要看配置文件:
<serviceCertificate x509FindType="FindBySubjectName" findValue="MyServer" storeLocation="LocalMachine"/>
配置证书的名称,以及存放位置.
Binds节点:
<security mode="Transport">
<transport clientCredentialType="None"/>
</security>
改成传输安全模式,因为是匿名客户端,所以这里clientCredentialType设置成None,忽略客户端证书
客户端代码就不写了,在VS2010里面直接添加服务器端引用,就可以.在添加之前我们先把这个服务端的WCF部署到测试机上.
WCF部署
首先发布出来的文件包括一个svc文件bin文件,以及web.config
为了做测试我在windows server2008 和winddows server2003上各做了测试,两者没啥太大的区别,这里以2003为例子:
新建网站,将站点部署上去:
确保IIS和WCF配置正确,
注册WCF:
C:\WINDOWS\Microsoft.NET\Framework\v3.0\WindowsCommunication Foundation>ServiceModelReg.exe /i /x
注册IIS:
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727>aspnet_regiis.exe –i
如果出现IIS 访问404 记得勾选WEB扩展里面的ISAPI扩展 ,以及开启.netframwork
按后确保WCF文件可以访问.
配置证书服务,在 win2003下开启证书服务之后会自动在默认网站下创建一个asp的证书服务站点.
注:此处如果没有自动创建该站点,也许是你的默认网站已经删除,或者没有开始以80端口的网站。
然后访问:https://localhost/certsrv/default.asp 就可以看到页面了。
详细的证书申请请参照如下网站
创建开发期间的临时证书http://msdn.microsoft.com/zh-cn/library/ms733813.aspx
这个是通过命令行来创建,其实现在可以直接用可视化窗口来创建了。
详细的证书创建步骤:http://www.cnblogs.com/yjmyzz/archive/2008/08/21/1273201.html
下面提供一个免费的SSL证书申请的网站:http://www.startssl.com/
这里是详细的教程 http://blog.s135.com/startssl/
最后记得开启IIS的SSL访问:
因为我是匿名客户端访问,可以忽略客户端证书。
然后用https:// 来访问我们的服务就可以了。
这样客户端访问的时候使用vs2010默认给我们生成好的web.config 就可以了.
本篇博客同步发布在我的博客http://xiaogangblog.com/archives/289.欢迎转载.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· [AI/GPT/综述] AI Agent的设计模式综述