gpt4 book ai didi

wcf - 如何保护未托管在 IIS 中的 WCF 服务

转载 作者:太空宇宙 更新时间:2023-11-03 14:20:25 25 4
gpt4 key购买 nike

我一直在寻找正确的方法来保护分别托管在 Windows 服务和 WPF 桌面应用程序(2 项服务)中的 WCF 服务。

我尝试了很多示例和样本,阅读了很多不同的做事方式,以至于我现在很困惑,不知道该怎么做。

简而言之 - 这是场景......

我有一个 Windows 服务,它允许客户端应用程序在公司局域网上连接到它。

这里的所有通信都在公司防火墙后面。没有面向公众的东西。

现在 - 我设法使用启用了 Windows 身份验证的 basichttpBinding 使一切正常工作。

问题是我需要安全地传输所有内容——而不是使用 http。

所以 - 我认为简单地生成证书将是一个相对简单的任务(不需要是商业证书 - 只需使用 MakeCert 的开发证书就可以)并且我可以从文件加载该证书并使用那-哦,我错了!从我读到的内容来看,这并不简单。

从正确的角度来看 - 有 100 台服务器,每台服务器都运行一项服务,超过 500 个桌面客户端可以联系该服务。如果需要,100 个服务器中的任何一个都可以联系每个客户端。

另外 - 如果需要,服务器也可以相互联系 - 他们经常这样做。

生成 600 多个证书并将它们加载到每台机器的证书存储库中并不是一个真正的选择 - 你能想象一两年后的更新吗......

我希望做的是能够为服务器和客户端生成一个证书文件,并分别将证书文件分发给服务器或客户端应用程序的每个实例。当客户端或服务器启动并打开其 WCF 服务主机时 - 它会在其路径中使用证书来加密流量。我打算禁用所有吊销检查,因为这些将是来自不受信任来源的证书 - 但正如我提到的那样没问题。

到目前为止 - 我完全没有找到如何执行此操作的运气 - 事实上 - 我现在不确定哪种方法是正确的方法以及我使用 basichttpbinding 的方法是否正确。

我也尝试过使用 net.tcp 而不是 http 的路径 - 但我无法让 visual studio 服务引用生成器找到服务 - 或者如果它找到了它总是失败并出现错误。

鉴于我在上面概述的场景 - 有人可以告诉我在服务器和客户端之间实现加密通信的正确方法(反之亦然)。我是否能够对我的 basicHttpBindings 进行一些小的更改以使用我的单个服务器或客户端证书启用 ssl,或者我是否正在插入众所周知的 !^&#% 上坡?

我们非常欢迎任何建议,或者提供可能适合我所描述的场景的指南链接,以便我对此进行排序。

感谢任何帮助

亲切的问候

杆。

最佳答案

你在说什么?您在公司网络中有 100 台服务器和 500 台台式机,而您没有所有这些机器都信任的内部证书颁发机构?在具有 Active Directory 的公司网络中,这应该是简单的任务,因为每台机器很可能已经拥有自己的证书,如果没有,它可以从本地 Active Directory 证书颁发机构请求证书,它会简单地获得一个,而无需您手动操作证书。它还可以处理证书更新。您只需要使用 netsh 将该证书分配给每台计算机上的正确端口- 我相信这也可以以某种方式自动化。问题如何在企业网络中使用企业CA、AD或自动分配证书属于Server Fault .

谈论安全性并同时将带有私钥的相同证书分发给 600 台机器是无稽之谈。任何机器都能够解密针对任何其他机器的流量 = 这与通过 HTTP 以 base64 发送数据并称之为安全性相同。

关于wcf - 如何保护未托管在 IIS 中的 WCF 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7377420/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com