WCF使用X509证书数据加密


一:创建证书

在VS2012 的DOS命令提示中,输入下面的命令创建两个证书

makecert.exe -sr LocalMachine -ss My -a sha1 -n CN=TestServer -sky exchange -pe
makecert.exe -sr LocalMachine -ss My -a sha1 -n CN=TestClient -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->在控制台中选择文件->添加/删除管理单元->添加->选择证书->弹出证书管理单元选择计算机账户,默认下一步确定回来,就看到下面的界面。
WCF使用X509证书数据加密_第1张图片


二;建立wcf服务

主要是配置


              这里设置成None因为我们创建的是不受信任的证书
 




  
    
  
  
    
    
  

  
    
    
      

        
          
          
          
          
          
           
          
            
              
            
            
          
        
        
      
    

    
     
      
        
          
            
          
        
      
    
    

         
        
          
            
          
        
        
      
    
    
    
        
        
    
  
  
    
    
    
  



配置后运行wcf服务后报密钥集不存在,是因为没有对证书授权

WCF使用X509证书数据加密_第2张图片

授权证书:

添加Everyone --读取

WCF使用X509证书数据加密_第3张图片

WCF使用X509证书数据加密_第4张图片

然后就可以正常的访问wcf服务了

WCF使用X509证书数据加密_第5张图片


三:客服端调用

用winform作为测试客服端

添加引用后添加一点配置



     
        
    
    
        
            
                
                    
                        
                    
                
            
        
        
            
                
                    
                
            
        
          
       
        
          
          
            
              
              
              
                
              
            
          
        
      
    

WCF使用X509证书数据加密_第6张图片

ok!调用成功

注意:这里使用的是wsHttpBinding,使用basicHttpBinding调试没有成功




你可能感兴趣的:(wcf)