成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

WCF X.509證書驗證提高安全級別

開發 開發工具
今天我們將會在這里為大家詳細介紹一下有關WCF X.509證書驗證的應用方法,希望本文介紹的內容可以給大家帶來一些幫助。

WCF中,有一種驗證機制是通過證書來進行的。這種安全機制可以為我們打造一個安全性非常高的解決方案。在這篇文章中,我們將會為大家詳細介紹一下WCF X.509證書驗證的相關應用方法。#t#

最近在配WCF X.509證書驗證,我想在服務端實現SSL加密,然后當客戶端調用服務時,需要出示自己的數字證書以證明自己是合法的用戶。配置過程很麻煩,不像書上說的那樣。我總結了一下有如下幾點需要注意。

在IIS部分,對于有服務器證書的WCF服務站點,可以要求SSL連接,128位加密,但是不能要求客戶端證書。在WCF服務部分,不能使用wsDualHttpBinding,應為它一個通道SSL,另一個通道不能保證安全,在服務運行時會抱錯。

配置過程大致有以下幾步:

1。配置IIS SSL服務器證書

2。獲取并設置客戶端證書

3。配置WCF的服務端和客戶端

上述第1步,涉及到IIS的應用,不是本文重點,相信玩過IIS和證書頒發機構的朋友都不陌生,不做敘述了。第2步的中獲取證書也是比較容易的,配置證書就比較麻煩,新證書一般默認安裝到本機的Current_User\My下,非系統管理員無法獲取其私鑰,而WCF客戶端又需要獲取該證書私鑰以向服務端證明自己的身份,而且WCF客戶端運行時使用的是非本機管理員帳號,這就導致了WCF會報出無法找到證書的錯誤。解決這個問題,我們需要使用名為“Windows HTTP 服務證書配置工具”(WinHttpCertCfg.exe) 的工具為證書指定權限。該工具包含在Windows Server 2003 Resource Kit Tools可以到微軟下載,地址是:http://www.microsoft.com/downloads/details.aspx?FamilyID=9d467a69-57ff-4ae7-96eeb18c4790cffd&displaylang=en 下載好后在命令行類似下面的命令

WinHttpCertCfg.exe -g -c CURRENT_USER\MY -s "Issued_To_name" -a DOMAIN\account

就是說給account帳號賦予獲取私鑰的權限,可用ASPNET,NETWORKSERVICE等,-s后面是要搜索的條件。在分配完權限后,最好關掉IIS的進程,這樣設置生效比較快 ,同樣我們也需要配置服務所需的WCF X.509證書驗證。

做完了第2步,第3步就好辦了,貼一下我的配置服務端

  1. < behaviors> 
  2. < serviceBehaviors> 
  3. < behavior name="MemberServiceBehavior"> 
  4. < serviceMetadata httpGetEnabled="false" httpsGetEnabled="true"> 
  5. < serviceDebug includeExceptionDetailInFaults="false"/> 
  6. < serviceCredentials> 
  7. < serviceCertificate storeName="My" storeLocation="LocalMachine" 
    x509FindType="FindBySubjectName"   
  8. findValue="membershipapi"/> 
  9. < /serviceCredentials> 
  10. < /behavior> 
  11. < /serviceBehaviors> 
  12. < /behaviors> 

 

 

  1. < bindings> 
  2. < wsHttpBinding> 
  3. < binding name="wsHttpCredentialBinding"> 
  4. < security mode="TransportWithMessageCredential"> 
  5. < transport clientCredentialType="Certificate"/> 
  6. < message clientCredentialType="Certificate" /> 
  7. < /security> 
  8. < /binding> 
  9. < /wsHttpBinding> 
  10. < /bindings> 

客戶端

  1. < behaviors> 
  2. < endpointBehaviors> 
  3. < behavior name="clientCredentialBehavior"> 
  4. < clientCredentials> 
  5. < clientCertificate storeName="My" storeLocation="CurrentUser" 
    findValue="MemberApiClient" x509FindType="FindBySubjectName" /> 
  6. < serviceCertificate> 
  7. < authentication certificateValidationMode="ChainTrust"/> 
  8. < /serviceCertificate> 
  9. < /clientCredentials> 
  10. < /behavior> 
  11. < /endpointBehaviors> 
  12. < /behaviors> 

我這樣的配置雖然客戶端在不提供WCF X.509證書驗證的情況下仍然能夠看到服務的元數據終結點(主要是因為IIS沒有配置為要求客戶端證書),但是在調用服務時如果沒有證書,就會抱錯,目的基本達到。

最后我想說一下,書上講authentication certificateValidationMode配置為PreeTrust比較好,只要在信任的人的列表里就可以通過驗證,可是經過我的試驗似乎不是這樣,在我的客戶端和服務中,authentication certificateValidationMode值配置為PreeTrust或ChainTrust沒有什么區別,客戶端都需要將證明自己的WCF X.509證書驗證找出來,提供給服務,不然就要抱錯。

責任編輯:曹凱 來源: 博客園
相關推薦

2013-08-30 10:54:53

2009-02-23 20:31:31

計算機英語短文X.509

2010-04-14 09:38:49

Windows SerIE安全級別

2011-12-09 09:31:58

桌面虛擬化

2013-04-25 10:11:12

托管虛擬桌面HVDGartner

2022-03-18 10:23:11

元宇宙ARVR

2009-09-04 16:21:37

Ruby on Rai

2013-07-18 11:00:59

山石網科

2009-12-22 18:52:06

WCF安全性

2022-08-16 12:09:21

身份驗證MFA

2013-10-22 10:24:05

2011-08-19 12:17:46

2010-09-16 09:33:14

無線路由器

2015-07-28 14:00:46

云整合云安全

2011-08-11 11:08:09

2017-12-08 21:26:52

物聯網DDI安全性

2019-06-17 08:43:46

安全測試網絡安全攻擊

2020-04-01 11:38:13

物聯網安全微分段IOT

2009-11-16 16:25:36

2018-09-12 08:22:13

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 色综合一区二区 | 午夜免费福利影院 | 91视频在线 | 日韩福利 | 精品少妇v888av | 国产精品18hdxxxⅹ在线 | 日韩成人在线视频 | 国产最新精品视频 | 免费久久久| 欧美国产日韩在线 | 91精品国产91久久久久久最新 | 欧美日韩亚洲三区 | 国产一级视频在线 | 精品一区二区电影 | 99精品免费久久久久久日本 | 午夜视频一区二区 | 国产色婷婷久久99精品91 | 99精品免费在线观看 | 草久在线视频 | 亚洲精品18 | 久久精品国产一区二区三区不卡 | 午夜a级理论片915影院 | 国产精品久久久久久亚洲调教 | 欧美精品久久久久久 | 国产农村妇女精品一二区 | 日韩在线一区二区 | 盗摄精品av一区二区三区 | 亚洲精品视频在线 | 国产高清精品一区二区三区 | 精品一二三区视频 | 97在线播放| 日日夜夜天天 | 国产情侣在线看 | 亚洲黄色av | 99只有精品 | 在线视频日韩 | 免费在线观看成年人视频 | 国产免费一区二区 | 久久蜜桃资源一区二区老牛 | 国产精品自拍视频 | 91精品国产一区二区三区 |