【问题标题】:Can we use same webclient for diff ssl contexts?我们可以为不同的 ssl 上下文使用相同的 webclient 吗?
【发布时间】:2021-02-16 07:05:00
【问题描述】:

我需要使用不同的 ssl 上下文调用不同的服务。我需要为此使用 diff webclients 还是有一种方法可以只使用一个?

【问题讨论】:

  • “不同的 ssl 上下文”和“不同的 Web 客户端”是什么意思?你能给我们看一个代码示例吗?根据我的经验,使用 Web 客户端时通常不会出现 SSL 的概念。这一切都对你隐藏。所以我不明白你的问题。
  • 从这里我看到你可以使用 sslcontext 创建一个 httpclient 连接器并使用它来创建一个 webclient。我的用例需要我使用 diff ssl 上下文连接到 2 个不同的端点。
  • 来自“这个”?你的意思是?您能否展示一些示例代码,说明您如何使用特定的 sslcontext 设置 httpclient?
  • 对不起。我以为我把网址放在这里。 stackoverflow.com/questions/45418523/…
  • 您访问什么样的网站?他们使用的是自签名证书还是非标准证书?这就是那个问题的意义所在。该问题不适用于标准情况,例如转到 apple.comgoogle.com,或者可能是 yourwork.com 或网络上的大多数其他 URL。

标签: java spring webclient spring-webclient sslcontext


【解决方案1】:

您的问题取决于您希望或需要如何为要连接的每个站点设置客户端。在 cmets 中与您交谈时,我现在明白了:

  1. 您想连接到使用自签名 SSL 证书的受 HTTPS 保护的站点

  2. 您不想验证这些证书,而只想忽略客户端的所有证书检查。

由于您只想创建一个忽略您连接到的站点的 SSL 证书的客户端,那么您可以按照您提供的链接中的说明进行操作,this one,您应该能够只使用一个配置的客户端这种方式可以连接到任意数量的站点。

即使您想检查并信任您要访问的这些站点的自签名证书,您也可以使用单个客户端来完成。您需要做的就是向客户端注册每个证书,以便它信任该证书。您可以让客户端信任多个证书,方法是将它们分别放入客户端正在使用的同一信任存储中。

所以这里的简短回答是不,您不需要创建多个客户端。

【讨论】:

  • 感谢您的指导。我确实想检查并信任证书。我会尽力按照你的建议去做。对不起。显然我的赞成票不算数。
  • 酷。我认为,如果您可以连接到一个正常工作的站点,那么届时您是否可以在设置中添加额外的证书并因此将相同的客户端用于其他站点将很清楚。祝你好运!
猜你喜欢
  • 2016-06-17
  • 2013-08-09
  • 1970-01-01
  • 2019-01-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-01-19
  • 2014-08-23
相关资源
最近更新 更多