我需要保护使用netTcpBinding的WCF服务,并直接与基于Windows窗体的应用程序连接。我只需要将它固定在传输层。
我很确定我在本地工作,即我可以在本地运行该服务,并与客户端连接。
当我尝试设置服务以使其在服务器上运行而不是本地计算机时,我遇到了证书问题。错误日志表明证书必须具有能够进行密钥交换的私钥,并且该进程必须具有私钥的访问权限。
我正在使用使用makecert创建的开发证书。
makecert -n "CN=MY COMPANY DEBUG" -pe -sky exchange Debug.cer
我必须承认我很擅长使用证书。有没有人对我如何解决这个问题有任何指示,或者使用证书使用netTcpBinding将传输安全性添加到WCF服务的更好方法?
感谢。
答案 0 :(得分: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,然后为当前计算机添加“证书”管理单元)来完成。
答案 1 :(得分:0)