Atlassian Stash SSL 证书续订问题

Atlassian Stash SSL 证书续订问题

因此,我们在 Ubuntu 服务器上运行了一个自托管版本的 Atlassian BitBucket,其中包含代码存储库。我们使用来自 DigiCert 的 SSL 证书。我们每年都会更新证书,这从未引起过问题。然而,这次大多数开发人员在证书更新后从 GIT 推送和提取代码时都遇到了以下错误

致命:无法访问:SSL 证书问题:无法获取本地颁发者证书

所有在线搜索都表明,当您使用自签名或内部 PKI 证书时会出现此错误。我们完全不明白为什么像 DigiCert 这样的公共机构颁发的证书会出现此错误。任何帮助都将不胜感激。

答案1

公共证书颁发机构不直接从其根证书颁发证书,而是通过中间证书(出于安全和管理原因)。

如果没有中间体,就不可能在您的证书和 DigiCert 之间建立链接,这意味着为了验证您的服务器证书,仅仅信任 DigiCert 根是不够的 - 客户端还必须获得链中的所有中间颁发者。

Web 浏览器可以通过多种方式实现这一点:它们可以从存储在服务器证书中的 AIA URL 获取证书,还可以缓存之前见过的中间颁发者,因此各种不完整的配置出现通过浏览器访问时可以“正常”运行。

但是基本的 TLS 客户端不够灵活(我的意思是,它们不能发出任何额外的 HTTP 请求,也不希望有可写的缓存),因此必须提供中间证书由 TLS 服务器本身

  • 如果 Web 服务器采用单个 PEM (.crt) 文件,则该文件需要具有正确的中间证书附加對它來說。

    如果 DigiCert 通过电子邮件向您发送了包含证书的 .zip 文件,则其中包含的文件之一是中间证书,您可以使用cat或文本编辑器连接这两个文件。(服务器证书始终排在最前面,其直接颁发者证书排在后面,依此类推。根证书排在最后,但在这里它是多余的,所以不要包含它。)

  • 如果 Web 服务器需要 PKCS#12 文件,并且您使用 创建了该文件openssl export,则重新导出它并使用 OpenSSL 的-CAfile选项指定中间文件。(或者,将其合并为 .crt -cert。)

  • 如果 Web 服务器使用 Java 密钥库,keytool -importcert是否可以工作?(Java 的最新版本支持并且确实更喜欢直接使用 PKCS#12 文件作为密钥库,因此这可能是多余的。老实说,我不知道。)

使用以下方法验证配置SSL 工具或者Qualys SSL 实验室。只需使用网络浏览器打开网站即可不是一次很好的测试,正如我已经提到的。

相关内容