3

我需要保护使用 netTcpBinding 并直接与基于 Windows 窗体的应用程序连接的 WCF 服务。我只需要在传输层保护它。

我很确定我让它在本地工作,即我可以在本地运行该服务,并与客户端连接到它。

当我尝试设置服务以使其在服务器而不是本地计算机上运行时,我遇到了证书问题。错误日志表明证书必须具有能够进行密钥交换的私钥,并且该进程必须具有对私钥的访问权限。

我正在使用使用 makecert 创建的开发证书。

makecert -n "CN=MY COMPANY DEBUG" -pe -sky exchange Debug.cer

我必须承认我对使用证书很陌生。有没有人对我如何解决这个问题有任何指示,或者有更好的方法来使用证书向使用 netTcpBinding 的 WCF 服务添加传输安全性?

谢谢。

4

2 回答 2

6

尝试这个:

makecert -n "CN=MY COMPANY DEBUG" -pe -sky exchange Debug.cer -sv Debug.pvk
pvk2pfx -pvk Debug.pvk -spc Debug.cer -pfx Debug.pfx

然后您将得到三个文件,.cer 文件(公钥)、.pvk(私钥)和 .pfx(与两者交换密钥)。然后,您可以像这样在服务器上安装 .pfx 文件:

certutil -p "" -importPFX Certificates\Debug.pfx

在客户端,您只需要安装 .cer 文件。这些安装(上面的 .cer 和 .pfx)您也可以通过证书 MMC 管理单元(开始、运行、MMC.exe,然后为当前计算机添加证书管理单元)来完成。

于 2009-05-21T15:01:51.443 回答
0

阅读(涵盖 https 案例,但仍可能有所帮助)和.

由于我们谈论的是传输级安全性,我认为您的服务器进程不应该知道您用来提供它的证书的任何信息。

于 2009-05-21T15:00:10.137 回答