我有一个 WCF 服务,我想使用客户端证书来保护它,但我无法让它在 Azure 上运行。
我通过将服务托管在 Amazon 上的标准 Windows Server 上,将 Azure 从等式中移除。我将服务和客户端证书(没有一个是自签名的)安装到此服务器上的本地计算机“个人”存储中,包括链式证书,并且一切都按预期工作,从我的本地 PC 调用,客户端证书设置为绑定/行为。如果没有指定证书,它就无法工作,因此它肯定以这种方式正常工作。
然后我将该服务部署到 Azure。客户端和服务器证书被上传到门户并在“本地机器/我的”配置中设置,CA 和根证书被上传,我在包括“我的”、“受信任的”和“CA”在内的各种商店中尝试过它们。我尝试的每一个变体,我都会继续从本地完全相同的程序调用“ HTTP请求被客户端身份验证方案'匿名'禁止”,唯一的变化是客户端端点地址。
作为另一个细节,我可以让它在没有证书的情况下工作,因此 Web 服务没有问题,但我不确定如何弄清楚客户端和服务之间的证书握手实际发生了什么。