【问题标题】:Using client certificate in c# web application on Azure IIS在 Azure IIS 上的 c# Web 应用程序中使用客户端证书
【发布时间】:2017-10-04 18:33:07
【问题描述】:

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

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

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

我已经在 VM 上安装了 Visual Studio,并验证它可以工作;我已经在本地机器上安装了 IIS 并验证它可以工作。因此,如果 Azure VM 上的 IIS 似乎是一个组合:s。

起初我认为可能是客户端证书没有从证书存储中获取。但是我添加了“找不到证书”的处理,这不会触发。

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

不胜感激!

【问题讨论】:

    标签: c# azure iis virtual-machine x509certificate2


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

      试着把它放在你的构造函数中:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-09-06
        • 1970-01-01
        • 2019-05-11
        • 2014-07-05
        • 1970-01-01
        • 2019-06-04
        • 2017-09-28
        • 1970-01-01
        相关资源
        最近更新 更多