gpt4 book ai didi

java - 导入根 CA 或中间 CA 而不是单个公共(public)证书

转载 作者:太空宇宙 更新时间:2023-11-03 13:37:43 31 4
gpt4 key购买 nike

SSL 证书永远不会让我眼花缭乱。我有一个网络应用程序,它从合作伙伴那里对另一项服务进行休息调用以获取某些数据。他们使用为公司生成的自签名或内部 CA。问题是每当另一端更新 SSL 证书时,我的应用程序就会失败。这是因为我从他们的网站下载并导入到我的应用程序的 java trustore 中的公共(public)证书 (.cer) 与他们的新站点不匹配。要解决此问题,我必须重新下载他们最新的公共(public)服务器证书并再次导入我的 java 信任库。

假设他们使用一致的 ROOT CA 或中间 CA 证书来签署他们不断变化的 SSL 证书,我可以只在我的 java 信任库中一次性导入 ROOT CA 或中间 CA 来处理这个问题吗?因此,只要他们不更改 ROOT CA 或 INTERMEDIATE CA,我的应用程序就可以进行调用。

最佳答案

因此他们的自签名 CERT 不是从 ROOT CA 构建的。他们的 CERT 是他们自己生成的,所以这就是为什么默认情况下它被认为是不可信的。因此,每次他们生成一个新的时,都会发生以下情况:

  1. 您的应用向他们的服务器问好
  2. 他们的服务器发送新生成的 CERT,其中包括以下信息:公钥、算法、证书有效日期范围等。
  3. 您的应用获取新的 CERT 并将其与旧的 CERT 进行比较,然后意识到,哦,它们不一样。
  4. 您的应用会说,嗯,这是不可信的并会抛出错误。

这是设计使然,因为这类似于中间人攻击的相同结果。出于这个原因,您的客户只信任某些 CA。 CA 的工作是根据证书进行认证,以确定它们是好是坏。如果您可以在 CA 不知情的情况下像那样即时添加证书,那么 CA 真的不知道要信任哪些证书。

所以这家公司可能已经向您开放了一个中间证书颁发机构,或者他们已经合作为您提供。您将不得不要求他们查看他们是否正在使用您可以连接到的某种 CA。

我对此表示怀疑,因为您说他们使用的是“自签名”证书,这意味着他们没有与任何 CA 合作。

关于java - 导入根 CA 或中间 CA 而不是单个公共(public)证书,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34319649/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com