1

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

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

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

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

4

2 回答 2

1

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

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

于 2013-10-22T16:36:34.323 回答
0

请参阅我对此 SO 帖子的回答- 底线,LocalMachine/My 中的证书并在 csdef 文件中以提升的权限运行添加:

<Runtime executionContext="elevated" /> 
于 2013-03-13T17:39:17.217 回答