【问题标题】:"could not establish secure channel for ssl/tls with authority" on nested APIs嵌套 API 上的“无法为具有权限的 ssl/tls 建立安全通道”
【发布时间】:2021-05-14 09:17:44
【问题描述】:

这可能是一个非常简单的问题,但(我认为)解释起来很复杂,请多多包涵。
我们的服务器上有一个 WCF API(用 C# 编写),它附加到第三方 API(如果你愿意的话,这是一种一站式的地方)。这些混合使用 OAuth 和证书来确保安全。我们的想法是,我们不必将(第三方)证书/安全性放在我们所有的服务器上,只需一个。
因此,计划是让一台服务器上的应用程序调用该服务器上调用第三方API的API。这似乎适用于除一个第三方之外的所有第三方。
如果我在我们的 API 上使用 Visual Studio (2017) 内置的 WCF 测试客户端,它可以正常工作。如果我尝试从另一个应用程序使用我们的 API(通过添加服务引用)即使在同一台服务器上,它也会失败并显示上述消息。
我们的 API(尚未)使用 https。
该计划用于将我们的 API 发布给其他人,因此我们不能与他们共享任何证书/登录名 - 这是我们 API 的根本原因。
我已经对此进行了很多谷歌搜索,所有答案似乎都指向证书必须在调用应用程序上,这似乎会破坏我们的“catch all”API
我可能没有很好地解释这一点 - 抱歉。也许这个问题可以概括为“如何阻止安全性被“传递”给调用应用程序?”

【问题讨论】:

  • 没有看到您使用客户端和服务器端的实际绑定,就没有更多的猜测了。也许这有帮助:stackoverflow.com/questions/4463485
  • 谢谢 rene。正如我在帖子中所说,“我做了很多谷歌搜索”,这是我发现的帖子之一“这似乎表明证书必须在调用应用程序上”
  • 这不是我们这里需要的
  • 我无法访问您已经在 Google 上搜索的内容。那么,您在客户端和服务器上使用的绑定是什么?您是否在 IIS 中托管?如果涉及证书,它是自签名的吗?证书是否在所有必需的证书存储中,例如在本地机器上,但也可能在运行 apppool 的身份上。
  • 你指的是哪个绑定?应用程序上的那个还是第三方“我们的”API 上的那个? “我们的”API 托管在我们服务器上的 IIS 中。证书(在“我们的”API 和第三方之间 - 根据我的原始帖子,应用程序和“我们的”API 之间没有证书)由第三方正式签署。由于(根据我的原始帖子)WCF 测试客户端可以正常工作,因此证书已正确安装。

标签: api wcf


【解决方案1】:

似乎罪魁祸首是运行“我们的”API 的应用程序池标识。我改变了它,现在一切都像我期望的那样工作:)

【讨论】:

    猜你喜欢
    • 2011-05-26
    • 2014-11-26
    • 2019-12-05
    • 2018-04-21
    • 1970-01-01
    • 2020-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多