Cal*_*nus 6 wcf wcf-encryption
我的WCF服务涉及在客户端和服务之间发送数据集(以csv格式)数据.必须对此数据集进行加密,以便无法拦截数据.我正在使用wshttpbinding并尝试使用web.config中的以下设置来加密消息:
<wsHttpBinding>
<binding name="wsHttp">
<reliableSession enabled="true" />
<security mode="Message">
<message clientCredentialType="UserName" algorithmSuite="TripleDes" />
</security>
</binding>
</wsHttpBinding>
Run Code Online (Sandbox Code Playgroud)
当我尝试生成客户端代理时,我得到一个很长的错误消息框(无法完全读取,因为它离开了屏幕的底部!).错误消息确实提到了"未提供服务证书"的问题.
如何加密邮件?我需要证书吗?我应该提一下,这项服务将在不同领域的互联网上使用,所以我不确定使用"用户名"安全性是否是最佳选择(?)
基本上我很困惑!
是的,您的服务需要证书,以便可以安全地交换您的加密密钥。您可以使用 makecert.exe 创建测试服务身份验证证书。有关详细信息,请参阅我的博客中的此条目。
您还需要确保您的服务运行的帐户能够读取证书的私钥文件。如果您使用的是 Windows Vista(或更高版本),证书 MMC 管理单元允许您控制该私钥的权限,但对于早期版本的 Windows 来说,这有点困难。我曾经使用 WSE3 附带的实用程序,但其他人可能可以建议更直接的方法。除非您的服务以管理员身份运行,否则您很可能必须调整这些权限。
更新:就像所有美好的事情一样,我的博客结束了。感谢makerofthings7 的提醒。生成服务身份验证证书所需的 makecert 命令是这样的......
makecert -sr LocalMachine -ss My -pe -n CN=subject-name -eku 1.3.6.1.5.5.7.3.1 -sky exchange
Run Code Online (Sandbox Code Playgroud)
...只需将主题名称替换为对您的服务有意义的任何证书名称即可。
| 归档时间: |
|
| 查看次数: |
13690 次 |
| 最近记录: |