Certificate openssl,颁发者证书链

Certificate openssl,颁发者证书链,certificate,openssl,Certificate,Openssl,我的处境: 我正在开发一个使用openssl和rsa证书与其他方进行安全通信的应用程序。 所以我们需要交换证书。 到现在为止,一直都还不错。 大多数情况下,合作伙伴证书是来自CA签名证书(不是根证书或selfsignd证书)的证书。 在我的笔记本(debian)上,我的openssl基础设施中安装了最常见的rootCA证书。因此,我可以验证大多数合作伙伴证书,因为我有颁发者根证书 我的问题: 在我的master maschine上,我没有预装根证书。因此,我需要检查发行人的合作伙伴证书,从互联网

我的处境: 我正在开发一个使用openssl和rsa证书与其他方进行安全通信的应用程序。 所以我们需要交换证书。 到现在为止,一直都还不错。 大多数情况下,合作伙伴证书是来自CA签名证书(不是根证书或selfsignd证书)的证书。 在我的笔记本(debian)上,我的openssl基础设施中安装了最常见的rootCA证书。因此,我可以验证大多数合作伙伴证书,因为我有颁发者根证书

我的问题: 在我的master maschine上,我没有预装根证书。因此,我需要检查发行人的合作伙伴证书,从互联网上获取该证书,将其放入openssl中我的可信证书目录中,等等

我的问题: 这是正常的做法吗????这是一个有点广泛,也有点棘手,如果它是一个较长的链

谢谢你的帮助


chris,预装根证书的目的是因为它们是信任链的顶端(实际上,它更像是一棵树,或者是一片树林…)

通过预先安装它们,我们假定(尽管我们都知道人们对假定的看法)它们不会被泄露,并且可以用于验证任何其他证书。虽然有可能通过黑客入侵FTP服务器和篡改Linux发行版的DVD图像等方式破坏它们,但这并不容易,也不会长时间不被发现,也不能针对特定的组织

在您的情况下,您应该执行以下操作之一:

  • 使用系统供应商提供的软件包在系统中安装根证书。为了获得较高的可信度,您应该从两个不同的位置下载相同的软件包,最好是通过不同的ISP(例如,从家里和从工作中)以及从两个或三个不同的镜像下载。然后您可以比较下载的文件,这些文件应该是相同的。如果您的系统供应商在线提供其软件包文件的校验和,您也应该验证这些校验和

  • 通过USB驱动器从受信任的系统获取根证书并将其传输到您的系统。您应该事先检查受信任系统的安全性。使用来自官方安装盘的原始Linux安装将是一个很好的来源

  • 安全地安装至少一个根证书(例如,通过USB驱动器方法),然后 尝试跟踪合作伙伴的颁发者证书。对于每个颁发者证书,您应该手动验证并安装信任链上的任何其他证书,直到获得预安装的根证书。这可能是一个非常繁琐的过程,您会感到沮丧,因为大多数CA出于各种原因使用多个证书,从减少潜在危害的影响到营销和业务原因

您不应将从Internet下载的证书作为受信任的CA安装,除非您可以验证其有效性,直至预安装的证书

因此,作为对您问题的回答:除非您有足够的时间和耐心,并且愿意了解更多有关PKI的信息,而不是大多数人所希望的,否则只需找到一种方法在您的系统上安装正确的根证书即可

编辑:

我忘了提到一些操作系统供应商(如SuSE)在其软件包管理系统中预装了自己的证书。在这种情况下,使用包管理系统从官方存储库下载包应该足够安全,您不需要为确保根证书包的有效性而麻烦上述任何一项