以期达成系统化介绍在自我之WCF开发框架(也堪运用叫公的WCF框架)中行使证书加密的正常操作及步骤。关于以WCF使用证书加密的要害。

 3.2 创建客户关系和劳动端的X509证书

 在VS2008 的DOS命令提示中,输入下面的命即可创建连锁的服务器和客户端证书。

makecert.exe -sr LocalMachine -ss My -a sha1 -n CN=ParkingServer -sky exchange –pe
makecert.exe -sr LocalMachine -ss My -a sha1 -n CN=ParkingClient -sky exchange -pe

下是各种参数的牵线

属性

解析

-sr

指定的证书存储区中的注册表位置。 
currentUser 
指定注册版存储位置为 HKEY_CURRENT_USER. 
localMachine 
指定注册版存储位置为 HKEY_LOCAL_MACHINE.

-ss

指定证书存储的位置。

-a

指定相关的算法,可以选择 MD5 算法或者 SHA1算法

-n

指定证书的名称。该名称遵循X.500命名标准。简单例子如 "CN=MyName" 格式,如果没有指定/n开关,证书默认的名称是"Joe’s Software Emporium"。

-sky

证书键类型。可以设置为 exchange 或者 signature。

-pe

证书可导出

 

开创证书成功后,我们于出的机器上就可以看到片个不等之关系了。

假设扣即简单个证,需要实施下操作,
开始-》运行-》mmc.exe=》在控制台中精选文件=》添加/删除管理单元=》添加=》选择证书=》弹来证明管理单元选择计算机账户,默认下一样步确定回来,就看出底的界面。

亿万先生官方网站: 1 

当地方我们好观看创建以LocalMachine账户下的证件,我们双击查看证书可以看出是关系是一个未吃信赖的证书,但是咱还是得以应用的,只是用在Web.Config配置信息遭到,certificateValidationMode 属性指定为None,而不克指定其他信任值。

以前头几篇稿子,均介绍了有的WCF服务的开销经历,对于数据的加密传输,重要性显然。关于在WCF使用证书加密的机要,在上篇随笔《

1、 证书加密应用背景

于网络化的条件中,特别是基于互联网发布之WCF分布式应用程序,数据的加密传输就亮分外重大,通过对网络数据的加密可以中保障系统的安全可靠性、私密性。

默认情况下,WCF调用是勿通过多少加密的。通过默认操作实现的劳务与客户端调用,数据传状态是怎的。我这边经过HTTP网络保险分析工具Http
Analyzer来对数据开展监督看,如下所示。

亿万先生官方网站: 2 

足见见,输入及出口的结果一切凡公开,数据传没任何秘密可言。当然,你吗可以针对这些数量好加密后发送出,但是每个接口,大量音为只要如此好手工加密吗,难道微软的WCF那么弱智?

本来不是,这些操作交给WCF处理会便捷很多,传说着起一个X509的证书加密,不过只要是率先赖将这,要全调通要活动多弯路,我不怕是参考了累累篇章(很多篇章还介绍了一致有些情节,很少克系统性的让你提出了的化解办法),遇潮杀鬼,遇佛拜佛,逐步消除各种险阻,这样逐步才来一个鲜明的思绪,逐步化解问题,最终才发心思来描写就首文章,后面的随笔我会介绍完的化解思路来处理X509加密的操作。

WCF常用的即使是使用X509证明来兑现加密,通过X509加密处理后,我们看来下的效能。

亿万先生官方网站: 3 

内的始末,包括输入及取得到的出口内容,均给加密的滥,一塌糊涂,即使是在公网中,看到吗是白搭,不知是花或野兽。实现以上之加密操作,在调用上,完全不见面吃影响,还是同原先的调用一样,不过要在WCF的服务及调用的客户端进行一些文件配置当操作即可。

概括,本文介绍的WCF框架的证件加密操作,具有下几乎个性状:

  1)不需多额外的代码,通过外置配置即可实现对应之加解密操作。

  2)数据传字段及内容都就展开加密,加密是通过关系对(服务器客户端各一个)进行拍卖。

  3)高配置型、灵活性的贯彻方式。

 

3.5 在服务器证书管理遭导入服务器端证书

成就以上步骤,如果服务配置文件对,基本上以支付机器上未见面来啊问题了,但是倘若把劳务配置及另外一贵服务器机器及,那么就算会可能出现找不顶关系的不当。因为服务还尚未导入创建好之证明也。首先我们当开机器及,在证明的控制台中选定服务端证书并导出即可将劳动端证书导出到文件被,如下图所展示。

亿万先生官方网站: 4 

亿万先生官方网站: 5

记忆在导出的时节择带来私钥的挑选即可,导出的文书保留也ParkingServer.pfx。然后我们以服务器受到,在相同之控制台中把服务端的关系导入即可让WCF服务在服务器遭受呢得以健康访问了。

5、 在服务器证书管理面临导入服务器端证书

2、WCF框架中以证书加密注意事项

1)
我们一般经过Windows内置工具或命令执行创建的证明,其实是临时用之测试证明,如果以布置文件之Certificate
ValidationMode属性中利用除“None”属性外的值,就不能够无往不利运行调用服务。这个问题莫过于可以经在Windows2003挨配备证书服务来创造合格的证件,不过要事先增建筑好证明服务平台(或者花钱请)。

2)
开发机器及安排服务,如果操作系统是XP系统来说,不用考虑为IIS授权的题目。如果是在Windows2003等于服务器机器及,要叫IIS授权才能够看证书,需要运用WinHttpCertCfg.exe或者CertMgr.exe来落实关系之授权等操作。

因而于开始采取WCF以来,一直怀念用合适的数目加密传输来解决问题,WCF常用的哪怕是使用X509证书来兑现加密,开始创办WCF服务,并如愿调用,以为一还都好美好,但是这X509加密处理方式却使人头痛不已,一直没能够无往不利调通,并参考了不少www.codeproject.com上的有关文章,里面来广大毋庸置疑的文章,不过很多非敷系统,也说得无敷具体化。本文的打算就是事无巨细、系统化介绍如何处理证书加密的操作,方便自己和他人日常开支WCF借鉴。

3.6 在客户端导入客户端证书,完成X509证书配置并调用服务

只要客户端需要配置很多只,那么每个客户端需要把第二步创建的客户端证书导入,才会正常福利服务器的WCF服务,否则会并发证书之各种提示错误,导入操作如下所示。

亿万先生官方网站: 6

亿万先生官方网站: 7

亿万先生官方网站: 8

亿万先生官方网站: 9

亿万先生官方网站: 10

万一这些操作完,那么真诚恭喜您,真的好运用WCF服务了,而且是运用了X509证书加密的WCF服务。

 另外,为了使X.509证书服务,客户端的安排文件包如下所示,注意证件有的设置即可。

亿万先生官方网站: 11 

有关自己之Winform开发框架和WCF开发框架的性状,可以看网站介绍地点(http://www.iqidi.com/Framework/info.html?flag=3)进行了解.

首先先介绍一下先行者对WCF开发被运用证明加密的部分思路介绍,个人觉得比较靠谱的凡立即点儿篇稿子

WCF开发框架的证书加密操作,前面在框架的一起做了扳平篇介绍,本文主要是用各种有关知识点综合起来进行介绍,以期达成系统化介绍于本人的WCF开发框架(也可行使被你的WCF框架)中采用证书加密的正规操作和步骤。在WCF应用日益广泛的条件下,注意数据的安全性与系统稳定的问题,是咱们计划初期必须考虑的机要举动之一,特别针对有的行业比较灵敏的数要重大活动的数,这个是一个硬性规定的前提条件之一。在WCF开发框架中,应用X.509证书加密可以缓解此问题,但是如果动这东西,我们必须对有关的知识点有所了解,然后对系的布置进行安装,才能够正常进行应用。

吃IIS的NETWORKSERVICE账户以基于证书文件模式授权
winhttpcertcfg -g -i “ParkingServer.pfx” -c LOCAL_MACHINE\My -a “NETWORKSERVICE” -p

3.1 创建WCF服务以和调用客户端 

此是核心的操作,客户可创造适合自己之WCF开发框架,这里介绍的WCF开发框架,时基于自己之Winform开发框架扩展而成为的WCF框架,是平种比较完善、高效、弹性化的出框架,详细步骤及证明要参考随笔《基于自身之Winform开发框架扩展而成为的WCF开发框架》,使用这种措施组织之付出框架,各层职责比较显著,而且方便管理。

绑架构视图如下所示:

亿万先生官方网站: 12 

列工截图如下所示(参考视图):

亿万先生官方网站: 13 

调用客户端需要加加WCF服务之援,操作如下所,注意一般约定的命名规则为ABCServiceReference:

 亿万先生官方网站: 14 

 框架大量采取了冲泛型的多少传接口,因此创立服务调用的客户端,需要以【高级】窗口设置中,添加泛型的更换接口设置(在集聚类型中选择System.Collections.Generic.List,其他默认),如下图所出示。

亿万先生官方网站: 15

脚是各种参数的介绍

3.3 配置服务端的安排文件,使的使用X509证服务

冲创造的证明信息,我们修改Web.Config文件,使的应用X509证件加密,如下所示。关键之地方是装验证方式下证书。

 <security mode="Message"> 
     <message clientCredentialType="Certificate"/>
</security>

只要关系之连带信息指定如下。

<serviceCertificate findValue="ParkingServer"
       x509FindType="FindBySubjectName"
       storeLocation="LocalMachine"
       storeName="My"/> 

方标示证书名称是ParkingServer ,通过寻找名字方式对应,并且存储于该地电脑账户、个人证件目录下的位置。

Web.Config 部分情节如下所示。

亿万先生官方网站: 16 

 

3.4 授权IIS访问服务器证书

完了以上操作后,如果你的支出机器是XP,那么当服务端是好运行如常了,如果您的开发机器是Window2003,那么,恭喜你中奖了,运行服务后会见面世下面的错误信息的:[ArgumentException:
证书“CN=ParkingServer”必须具备能够进行密钥交换的私钥。该过程必须备访问私钥的权柄。如下图所示。

亿万先生官方网站: 17 

若果化解点的错,
只待让相应的账号分配权限即可,这里IIS访问证书密钥的权杖可以透过WinHttpCertCfg.exe来处理,只待通过命令执行执行该次即可,如下所示。

winhttpcertcfg -g -c LOCAL_MACHINE\My -s ParkingServer -a "NETWORKSERVICE" 

运作命令后,在运转WCF服务,一切OK了

亿万先生官方网站: 18 

这边另外为介绍下WinHttpCertCfg.exe来进行拍卖的几乎只指令。

列有证明的授权列表
winhttpcertcfg -l -c LOCAL_MACHINE\My -s ParkingServer -a “NETWORKSERVICE”

于IIS的NETWORKSERVICE账户以基于证书名称模式授权
winhttpcertcfg -g -c LOCAL_MACHINE\My -s ParkingServer -a “NETWORKSERVICE”

受IIS的NETWORKSERVICE账户以基于证书文件模式授权
winhttpcertcfg -g -i “ParkingServer.pfx” -c LOCAL_MACHINE\My -a “NETWORKSERVICE” -p

移除账号对证明之授权

winhttpcertcfg -r -c LOCAL_MACHINE\My -s ParkingServer -a “NETWORKSERVICE” 

     <message clientCredentialType=”Certificate”/>
</security>

3、证书加密的支付步骤

归结,要成功安排基于X509证书加密的操作,需要立即几方的学问和操作步骤。

1)   创建WCF服务以与调用客户端。

2)   创建客户关系及劳务端的X509证书

3)   配置服务端的布置文件,使的使用X509证服务。

4)   授权IIS访问服务器证书

5)   在服务器证书管理遭导入服务器端证书

当客户端导入客户端证书,完成X509证书配置并调用服务。

 <security mode=”Message”> 

3、 配置服务端的配备文件,使的使用X509证件服务。

 

以VS2008 的DOS命令提示着,输入下面的吩咐即可创建连锁的服务器和客户端证书

 完成以上步骤,如果服务配置文件是,基本上以支付机器上未见面来什么问题了,但是倘若将劳动配置至另外一宝服务器机器及,那么就会可能出现找不至关系的错。因为服务还没有导入创建好的证件吗。

winhttpcertcfg -r -c LOCAL_MACHINE\My -s ParkingServer -a “NETWORKSERVICE” 

此间另外呢介绍下WinHttpCertCfg.exe来拓展拍卖的几只令。

 

以地方我们好看看创建以LocalMachine账户下之证明,我们双击查看证书可以看此证是一个未为信赖的关系,但是我们或可以使用的,只是要以Web.Config配置信息遭到,certificateValidationMode 属性指定为None,而不能够指定其他信任值。

亿万先生官方网站: 19 

属性

解析

-sr

指定的证书存储区中的注册表位置。 
currentUser 
指定注册版存储位置为 HKEY_CURRENT_USER. 
localMachine 
指定注册版存储位置为 HKEY_LOCAL_MACHINE.

-ss

指定证书存储的位置。

-a

指定相关的算法,可以选择 MD5 算法或者 SHA1算法

-n

指定证书的名称。该名称遵循X.500命名标准。简单例子如 "CN=MyName" 格式,如果没有指定/n开关,证书默认的名称是"Joe’s Software Emporium"。

-sky

证书键类型。可以设置为 exchange 或者 signature。

-pe

证书可导出

 

记得在导出的时段择带来私钥的挑三拣四即可,导出的文件保留也ParkingServer.pfx。然后我们于服务器受到,在平的控制台中管劳务端的关系导入即可让WCF服务在服务器遭到吗可以健康访问了。

因创造的关系信息,我们修改Web.Config文件,使的应用X509关系加密,如下所示。关键的地方是安验证办法使用证书。

此外作者或也只是当同一雅开发机器及布置服务同调用客户端或者是XP系统,因此为从未设想于IIS授权的问题,因为以Windows2003相当服务器机器及,要被IIS授权才能够看证书,需要利用WinHttpCertCfg.exe或者CertMgr.exe来贯彻关系之授权等操作,在就上头,文章http://www.codeproject.com/KB/WCF/CustomUserNamePassAuth2.aspx 介绍的出一些靠谱了,不过询问整篇文章却惨不忍睹完整测试WCF服务的使。

排有证明之授权列表
winhttpcertcfg -l -c LOCAL_MACHINE\My -s ParkingServer -a “NETWORKSERVICE”

地方标示证书名称是ParkingServer ,通过寻找名字方式对应,并且存储于本土电脑账户、个人证件目录下的职务。

makecert.exe -sr LocalMachine -ss My -a sha1 -n CN=ParkingServer -sky exchange -pe

2、 创建客户关系及劳务端的X509证书

创建证书成功后,我们以开之机械及就可以看到一定量单不同的证书了。

亿万先生官方网站: 20 

吃IIS的NETWORKSERVICE账户以基于证书名称模式授权
winhttpcertcfg -g -c LOCAL_MACHINE\My -s ParkingServer -a “NETWORKSERVICE”

假使这些操作就,那么真心恭喜您亿万先生官方网站:,真的好动用WCF服务了,而且是下了X509证书加密的WCF服务。 

如看这片单证件,需要执行下操作,
开始-》运行-》mmc.exe=》在控制台中甄选文件=》添加/删除管理单元=》添加=》选择证书=》弹有证明管理单元选择计算机账户,默认下一致步确定回来,就看到下面的界面。

 

3、 配置服务端的布局文件,使之使用X509证明服务。

 

5、 在服务器证书管理着导入服务器端证书

最终将任何测试例子放上,供大家参考学习:http://files.cnblogs.com/wuhuacong/TestWcfService.rar  

第一篇稿子基本都介绍了证件加密操作的有关手续了:创建证书、配置服务以及客户端节点。不过尚未证明我们一般经过那样创建的证书,其实是临时用之测试证明,不以布置文件的certificateValidationMode属性中使除“None”属性外的价值,否则便不克无往不利运行调用服务。这个问题莫过于可以经过在Windows2003受到配置证书服务来创造合格的关系,具体可以参考文章实现:http://www.codeproject.com/KB/WCF/wcf_certificates.aspx

 

<serviceCertificate findValue=”ParkingServer”
       x509FindType=”FindBySubjectName”
       storeLocation=”LocalMachine”
       storeName=”My”/> 

一经关系之连带消息指定如下。

6、 在客户端导入客户端证书,完成X509证书配置并调用服务

先是我们以付出机器上,在证明的控制台中选定服务端证书并导出即可将劳动端证书导出到文件中,如下图所出示。

Web.Config 部分情:

运转命令后,在运行WCF服务,一切OK了

2、 Using Certificate-based Authentication and Protection with Windows
Communication Foundation
(WCF)

 这个是主导的操作,客户创造适合自己的WCF开发框架,基于自身之Winform开发框架扩展而成为的WCF框架,是同一栽比较完善、高效、弹性化的出框架,详细步骤和说明要参考随笔《基于自己的Winform开发框架扩展而变成的WCF开发框架》,使用这种办法组织之开支框架,各层职责比较显著,而且方便管理。

如若客户端需要配置很多单,那么每个客户端需要拿第二步创建的客户端证书导入,才能够健康福利服务器的WCF服务,否则会并发证书的各种提醒错误。

下就是应声几乎端分别介绍有关的处理。

1、 http://www.codeproject.com/KB/WCF/9StepsWCF.aspx 

1、 创建WCF服务使用与调用客户端。

亿万先生官方网站: 21 

 

比方解决地方的荒谬,
只需要吃相应的账号分配权限即可,这里IIS访问证书密钥的权力可以通过WinHttpCertCfg.exe来处理,只需要经命令执行执行该次即可,如下所示。

综上所述,要成功安排基于X509证书加密的操作,需要立即几乎面的学问与操作步骤。

4、 授权IIS访问服务器证书

6、 在客户端导入客户端证书,完成X509证书配置并调用服务。

移除账号于证明之授权

 

1、创建WCF服务使和调用客户端。  

亿万先生官方网站: 22 

WCF开发框架形成的一起–您的数据是否用加密》
有详尽的牵线,特别对第一的、敏感的数目,加密传输非常关键。

winhttpcertcfg -g -c LOCAL_MACHINE\My -s ParkingServer -a “NETWORKSERVICE” 

 

亿万先生官方网站: 23  

做到以上操作后,如果您的开机器是XP,那么该服务端是得运作正常了,如果你的付出机器是Window2003,那么,恭喜你中奖了,运行服务后会面世下面的错误信息的:[ArgumentException:
证书“CN=ParkingServer”必须有能够进行密钥交换的私钥。该过程必须具有访问私钥的权柄。],如下图所出示。

makecert.exe -sr LocalMachine -ss My -a sha1 -n CN=ParkingClient -sky exchange -pe 

2、 创建客户关系和劳动端的X509证书

4、 授权IIS访问服务器证书

相关文章

网站地图xml地图