HTTPS 证书颁发究竟是如何工作的?

HTTPS 证书颁发究竟是如何工作的?

我正在与 SAS 供应商一起排除故障。需要说明的是,这个问题不是“我该如何修复它?”,也不是“到底是什么导致了这个问题?”——而是“这些技术是如何工作的,以至于这种症状的组合是可能的?”我已经向供应商开具了支持单(而且我迫不及待地等待它升级到足够有能力的人)。这个问题的目的是扩展我自己对这些事情(通常?)如何工作的理解,以及哪些变量可能发挥作用而我还没有考虑到。

上述供应商提供“域自定义”功能,您可以通过自己控制的域访问其服务。(您向他们提供私钥以及带链的证书,并添加指向供应商控制下的域的 CNAME 条目。)

我与该供应商有两个“租户”——一个用于开发,一个用于生产。两者都配置了自定义域。它们使用完全相同的证书和 PK;证书以生产域作为其 CN,并将开发域和生产域列为 SAN。

生产租户运行正常,因此我知道证书是正确的。但是,当我在浏览器中访问开发租户时,大约 80-90% 的时间都会出现证书错误,当我进行调查时,浏览器报告所呈现的证书有效但不是我的证书,而是属于供应商的证书(因此,没有将我的域列为 CN 或 SAN)。我尝试过不同的浏览器。我试过curl。我尝试过远程访问我可以访问的各种服务器并从那里进行检查。我的同事分布在美国各地,他们也尝试过。这种行为似乎不会因客户端软件、客户端硬件、地理位置或网络配置而变化。

在我这个过程的那个时候,我在想“好吧,他们在负载平衡器后面有一个服务器池,而一些服务器没有正确的证书,所以他们以某种后备方式提供了其他东西。”当然,很好,很有道理。

但后来我尝试DigiCert 的网站安全工具,您可以在其中输入域名,它会评估您的证书的正确性(以及其他内容)。使用该工具,我无法重现间歇性行为;相反,它每次都失败。

作为一名拥有数十年使用各种堆栈构建网站和服务经验的软件工程师,我对 DNS、HTTPS、TLS 证书、Web 服务器配置、网络路由、负载平衡等有相当深入的了解。但我很困惑,为什么 DigiCert 验证器看到的行为与我看到的不同。

我首先想到的是 DNS 传播延迟,但是DNS检查器表示不存在这样的问题。接下来,我认为 DigiCert 可能在缓存某些内容,但这会成为其工具的一个明显缺陷。在这两种情况下,由于这种行为已经持续了几天,这种解释的可能性已经减小。

所以,我的问题是,对于那些比我更了解这个领域的人来说:DigiCert 工具的体验与我尝试过的其他客户端的体验有何不同?

(如果这不是适合提出此类问题的 SE 网站,请见谅。它似乎比网络工程更好,而且当我仔细查看我的选项时,我没有看到任何其他看起来合适的选项。)

答案1

我同意你的猜测,这可能是由于在不同系统上使用不同的证书造成的,这可以解释不一致的行为;根据供应商用于分发请求的亲和性规则,这也可以解释为什么某些人(例如 DigiCert 的测试工具)始终得到错误的结果。

但是,试图猜测发生了什么是完全没用的;你应该向供应商的支持部门报告这个问题,并询问他们要解决这个问题。

相关内容