【问题标题】:Cannot get Azure WCF service to work with Client Certificates无法让 Azure WCF 服务与客户端证书一起使用
【发布时间】:2013-03-01 17:12:12
【问题描述】:

我有一个 WCF 服务,我想使用客户端证书来保护它,但我无法让它在 Azure 上运行。

我通过将服务托管在 Amazon 上的标准 Windows Server 上,将 Azure 排除在外。我将服务和客户端证书(没有一个是自签名的)安装到此服务器上的本地计算机“个人”存储中,包括链式证书,并且一切都按预期工作,从我的本地 PC 调用,客户端证书设置为绑定/行为。它确实在没有指定证书的情况下工作,因此它肯定以这种方式正常工作。

然后我将服务部署到 Azure。客户端和服务器证书被上传到门户并在配置中针对“本地机器/我的”进行设置,CA 和根证书被上传,我在包括“我的”、“受信任的”和“CA”在内的各种商店中尝试了它们。我尝试的每一个变体,我都会继续从本地完全相同的程序调用“HTTP 请求被禁止使用客户端身份验证方案'匿名'”,唯一的变化是客户端端点地址。

作为另一个细节,我可以让它在没有证书的情况下工作,因此 Web 服务没有问题,但我不确定如何计算客户端和服务之间的证书握手实际发生的情况。

【问题讨论】:

    标签: wcf azure certificate x509certificate


    【解决方案1】:

    我终于让它工作了,并在这里写了一个指南:Blogspot.co.uk

    我不确定我之前做错了什么,因为我没有做任何太奇怪的事情来使它起作用。我想也许我在配置的某个地方有一个小缺陷,我最终通过重新开始来修复。无论如何,它确实有效,并在 Azure 上提供了一些有用的安全性。

    【讨论】:

    • 另外一点,如果您使用的是App Services而不是Cloud Services,则需要使用App中的Resource Explorer来启用客户端证书,否则IIS不会对其进行处理。
    【解决方案2】:

    查看我对this SO post 的回答 - 底线,LocalMachine/My 中的证书,并在 csdef 文件中以提升的权限运行添加:

    <Runtime executionContext="elevated" /> 
    

    【讨论】:

    • 我在那里兴奋了一会儿,但我得到了同样的错误。我使用 RDP 和 PowerShell 来检查证书是否都安装在 Azure 服务器上,并且它们都按预期安装。我不确定还要检查什么。
    • 检查运行应用程序池的用户是否有权访问证书(RDP)
    • 不确定如何在 Azure/Windows Server 2012 中执行此操作。
    • RDP 进入实例,运行 MMC,为本地计算机添加证书管理单元,浏览到个人 >> 证书,右键单击有问题的证书 >> 所有任务 >> 管理私钥 - 用户名运行应用程序池应该在列表中
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-25
    • 2014-09-05
    • 2012-05-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多