一直想試試看 WCF 於 internet 上如何做到 message security 的功能
試了MemberShipAndRoleProvider 這一個 sample
是可以執行的。
但我自己寫了一個來試,卻又一直試不出來。
發生錯誤The X.509 certificate CN=localhost chain building failed. The certificate that was used has a trust chain that cannot be verified. Replace the certificate or change the certificateValidationMode. 撤銷功能無法檢查憑證的撤銷
在比對之下,才發現一個事實。
在MemberShipAndRoleProvider此 sample 下,有個假設,是已執行伺服器端的憑證。但該CA卻不存在。因此,無法達到 Chain trust的功能。
因此,必須將 Client side 的ChainTrust 改成PeerOrChainTrust。而在Client Side 的 Trusted Person 加入該網站的憑證。
因為該 client side 信任該網站的憑證,且certificateVericationMode 設成 PeerOrChainTrust,就會確認是不是受信任的人。是的話,就成功了。
<behaviors>
<endpointBehaviors>
<behavior name="ClientEndPointBehavior">
<clientCredentials>
<serviceCertificate>
<authentication certificateValidationMode="PeerOrChainTrust" />
</serviceCertificate>
</clientCredentials>
</behavior>
</endpointBehaviors>
</behaviors>
沒有留言:
張貼留言