在Azure IIS上的c#Web应用程序中使用客户端证书

时间:2017-10-04 18:33:08

标签: c# azure iis virtual-machine x509certificate2

我有一个c#web API,它使用客户端证书连接到第三方标识提供程序(BankID https://www.bankid.com/en/)。

在Visual Studio中运行时,连接握手正常。但后来我将它部署到在Azure上的虚拟机上运行的IIS,由于某种原因现在它不能按预期工作,而是我得到一个例外:

“请求已中止:无法创建SSL / TLS安全通道。”

我在VM上安装了Visual Studio,并验证它是否有效;我已经在本地计算机上安装了IIS并验证了它的工作原理。所以它似乎是Azure VM上的IIS的组合:s。

起初我以为可能是客户证书没有从证书商店中取出。但我添加了“未找到证书”的处理,但这并没有触发。

我还尝试过从文件中提取证书的替代方法。但这也不起作用。

非常感谢一些帮助!

2 个答案:

答案 0 :(得分:0)

尝试将它放在构造函数中:

ServicePointManager.Expect100Continue = true;
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls11;

答案 1 :(得分:0)

我设法找出问题所在。 IIS用户(IIS_IUSRS)没有使用私钥的权限。所以它实际上与Azure无关。

对于遇到同一问题的任何人,请在此处查看详细答案:https://stackoverflow.com/a/2647003/8721876