spatie/ssl-certificate-chain-resolver

SSL证书链解析器

3.0.1 2023-12-18 14:28 UTC

This package is auto-updated.

Last update: 2024-09-18 16:10:12 UTC


README

Latest Version Software License Build Status Quality Score StyleCI Total Downloads

所有操作系统都包含一组默认受信任的根证书。但是证书颁发机构通常不会使用它们的根证书来签名客户证书。它们使用所谓的中间证书代替,因为这些可以更频繁地轮换。

如果您的服务器上未安装所有中间证书,一些客户端(主要是移动浏览器)会认为您正在使用不安全的连接。

此工具可以帮助您解决不完整的证书链问题,也被Qualys SSL服务器测试报告为“额外下载”。

Spatie是比利时安特卫普的一家网络设计公司。您可以在我们的网站上找到我们所有开源项目的概述这里

支持我们

我们在创建最佳开源包方面投入了大量资源。您可以通过购买我们的付费产品之一来支持我们。

我们非常感谢您从您家乡给我们寄明信片,说明您正在使用我们的哪个包。您可以在我们的联系页面上找到我们的地址。我们将发布所有收到的明信片在我们的虚拟明信片墙上

明信片软件

您可以自由使用此包(它是MIT许可的),但如果它进入您的生产环境,您需要向我们寄送一张从您家乡的明信片,说明您正在使用我们的哪个包。

我们的地址是:Spatie,Kruikstraat 22,2018 安特卫普,比利时。

最好的明信片将被发布在我们的网站上开源页面。

安装

您可以使用Composer通过运行以下命令来安装此包。

composer global require spatie/ssl-certificate-chain-resolver

用法

假设您有一个不完整的证书,名为cert.crt。要生成包含证书和整个信任链的文件,您可以使用以下命令

ssl-certificate-chain-resolver resolve cert.crt

包含证书和整个信任链的文件将保存为certificate-including-trust-chain.crt

您也可以将输出文件的名称作为第二个参数传递

ssl-certificate-chain-resolver resolve cert.crt your-output-file.crt

如果输出文件已存在,您将被询问是否覆盖它。

更新

您可以通过运行以下命令将ssl-certificate-chain-resolver更新到最新版本:

composer global update spatie/ssl-certificate-chain-resolver

限制

目前此包不适用于实体验证证书或由Let's Encrypt签发的证书。非常欢迎添加此功能的PR。

测试

该包包含功能测试和单元测试。

您可以使用vendor/bin/codecept run自行运行它们

致谢

此包受到了cert-chain-resolver的启发,该包由Jan Žák编写。一些文本,主要是关于信任链的背景,是从他的仓库的readme中复制的。

背景:信任链

所有操作系统都包含一组默认的受信任根证书。但证书颁发机构通常不会使用它们的根证书来签发客户证书。相反,它们使用所谓的中间证书,因为它们可以更频繁地轮换。

证书可以包含一个特殊的权威信息访问扩展(RFC-3280)以及指向颁发者证书的URL。大多数浏览器可以使用AIA扩展来下载缺失的中间证书,以完成证书链。这就是“额外下载”消息的确切含义。但是,一些客户端,主要是移动浏览器,不支持这个扩展,因此它们将此类证书报告为不受信任。

这会导致像这样的“不受信任”警告,因为浏览器认为你正在一个不安全的连接上。

Untrusted Warning

服务器应该始终发送一个完整的链,这意味着连接所有从证书到受信任根证书(排除,按此顺序)的证书,以防止此类问题。因此,当在服务器上安装SSL证书时,你应该安装所有中间证书。你应该能够从颁发者那里获取中间证书,并将它们自己连接起来。

此工具通过遍历证书的AIA扩展字段来自动化这项无聊的任务。

关于Spatie

Spatie是比利时安特卫普的一家网络设计公司。您可以在我们的网站上找到我们所有开源项目的概述这里

许可

MIT许可证(MIT)。有关更多信息,请参阅许可文件