【问题标题】:VisualStudio:Could not create SSL/TLS secure channelVisualStudio:无法创建 SSL/TLS 安全通道
【发布时间】:2017-02-10 12:20:21
【问题描述】:

我已经搜索了很多,但找不到与这个特定问题相关的答案。

我正在通过我的 c# Web 应用程序访问 Web 服务。 Web 服务需要在请求中提供证书才能进行身份验证。

Web 应用程序处于开发模式,我正在使用带有 iis express 的 VisualStudio 2013。

我已经通过 MMC 在本地机器上安装了客户端证书。 在 Web 服务请求中,我添加了 X509Certificate。 Web 服务器不支持 SSL,但支持 TLS,所以我也添加了以下行:

ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;

我还添加了以下行:

ServicePointManager.ServerCertificateValidationCallback =delegate { return true; };

问题是如果我以普通用户身份使用 iis express 运行 VisualStudio,我会得到

"The request was aborted: Could not create SSL/TLS secure channel."

但如果我以管理员身份使用 iis express 运行 VisualStudio,则连接成功并且网络服务器返回所需的响应。

然后我在本地 iis 中托管了应用程序,并获得了 .Net 完全信任,但仍然得到:

"The request was aborted: Could not create SSL/TLS secure channel."

我的 ip 在网络服务器上被列入白名单。

如果有人可以帮助我理解为什么在以管理员身份运行 VisualStudio 时它可以工作,为什么它不能作为普通用户工作?

【问题讨论】:

    标签: c# ssl iis visual-studio-2013 administrator


    【解决方案1】:

    只是猜测:这可能是证书访问错误。

    可以编辑证书的ACL:在MMC中选择证书;上下文菜单;所有任务;管理私钥。

    管理员默认在此列表中。这与您描述的行为相符。

    【讨论】:

    • Dirk,这很有道理:) 您的猜测使我在 MMC 中授予权限。然后还有另一个问题是我没有“管理私钥”选项。然后我搜索了一下,发现了诀窍here。我的证书在 Trusted 文件夹中。我将它拖到个人文件夹中,因为管理密钥选项可用于个人。在那里我添加了 IUSR 和 Everyone 以获得完整权限并将证书拖回受信任的根目录:) 它就像一个魅力。
    • 我很高兴听到这个:-)
    猜你喜欢
    • 2021-12-13
    • 2014-12-26
    • 2017-08-22
    • 2016-08-03
    • 2018-06-17
    • 1970-01-01
    • 2023-04-08
    • 1970-01-01
    • 2018-12-19
    相关资源
    最近更新 更多