【问题标题】:IIS Hosted SSL WCF Service - Certificate or permissions problemIIS 托管 SSL WCF 服务 - 证书或权限问题
【发布时间】:2011-01-18 13:45:30
【问题描述】:

在有人将此标记为与另一个充满关于 WCF 问题的桶重复的内容之前,我不想要 MSDN 链接和博客文章参考。我可以自己谷歌,并且已经在这 3 天了,所以如果你只有谷歌链接,请弃权。

我在使用 wsHttpBinding 和自定义密码验证器的 IIS 托管 WCF 服务上玩得很开心。 IIS 对我的标准 ASPX 和 WCF 非安全服务运行良好(使用安全模式 =“无”的 wsHttpBinding,但尝试安全模式 =“消息”或“传输”需要混合使用 SSL 证书。我说的对我收到此错误: "证书 'CN=SignedByCA' 必须具有能够进行密钥交换的私钥。该进程必须具有对私钥的访问权限。"

根据我的研究,托管我的 WCF 服务的服务无法访问我的证书的私钥文件,或者我没有正确生成证书。

我使用以下方法生成了密钥:

  makecert -n "CN=TempCA" -r -sv TempCA.pvk TempCA.cer
  makecert -sk SignedByCA -iv TempCA.pvk -n "CN=SignedByCA" -ic TempCA.cer SignedByCA.cer -sr currentuser -ss My

然后我将 TempCA 证书导入到我的受信任的根证书颁发机构存储中,并将 SignedByCA.cer 导入到本地计算机的“个人”存储中。 WCF 现在可以看到证书,但上述错误表明权限问题或密钥问题。我也尝试将证书导入 IIS Admin Service 的个人存储,但不成功。

顺便说一句,我已将此添加到我的 web.config 中以用于服务:

       <serviceCertificate
          findValue="...."
          x509FindType="FindByThumbprint"
          storeLocation="LocalMachine"
          storeName="My"
          />

当我添加/更新服务引用时,我的客户项目出现错误。

根据我的研究,在 Windows 7 上,我应该能够使用证书管理器并右键单击 MMC 管理单元中的证书,然后选择所有任务 -> 管理私钥.. 或类似的。当我右键单击证书时,我没有看到该选项,我在所有任务下只有这些选项:[打开,使用新密钥请求证书,使用新密钥更新证书,导出...] 这让我相信它是证书问题而不是 priv 问题。

提前致谢。

【问题讨论】:

  • 我重新生成了我的证书,还创建了一个 .spc 文件和一个 .pfx 文件(使用 pvk2pfx.exe)并将 .pfx 文件加载到证书存储中,这暴露了“管理私钥”选项我之前一直在找。所以最初的问题是盲目地按照 MSDN 的说明创建一个 .cer 文件,该文件没有设置用于密钥交换。现在我可以向 IIS 添加权限。这导致了新问题,实现 Windows 7 上的 IIS7 默认不在“网络服务”下运行,我也必须更改它。
  • 非常感谢您对更改运行 IIS7 的默认服务的评论。一旦我改变我的问题就解决了。非常感谢!

标签: wcf iis-7 wcf-binding wcf-security


【解决方案1】:

在重新生成 .PFX 文件(PKCS #12 证书)http://msdn.microsoft.com/en-us/library/ms867088.aspx(使用 cert2spc.exe 创建一个 .spc 文件,使用 pvk2pfx.exe 创建一个 .pfx 文件)并将 .pfx 文件加载到证书存储后,这公开“管理私钥”选项。最初的问题是盲目地遵循 MSDN 说明并使用 .CER 公共证书文件,这不足以进行密钥交换。 .PFX 文件可以解决问题。现在我可以为用户/服务添加读取密钥的权限。

我还发现 Windows7 上的 IIS7 没有在正常记录的身份“网络服务”或“本地服务”下运行,而是在“应用程序池标识”下运行。所以在我切换了身份之后,这个问题就解决了,(只是让 WCF 起步的另一个烦恼)。

【讨论】:

    猜你喜欢
    • 2014-09-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-04
    • 2022-12-13
    • 2011-07-26
    • 1970-01-01
    • 2014-01-08
    相关资源
    最近更新 更多