首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >openssl证书链- windows

问openssl证书链- windows
EN

Security用户
提问于 2021-04-17 09:32:12
回答 2查看 546关注 0票数 1

我有一个ROOT_CA和一个subCA。subCA为一个网站(CUPS1.local)颁发了一个证书。此外,我还有Windows客户端;ROOT_CA已经作为受信任的根证书颁发机构安装。

使用subCA验证openssl verify工作,我也可以在Windows中看到它。

我还可以在openssl中验证CUPS1.local的证书

代码语言:javascript
复制
openssl verify -CAfile /etc/certs/cacert.pem -untrusted subCA_websites.crt cups1.crt
cups1.crt: OK

此外,如果我创建一个链,证书也是可以的。

代码语言:javascript
复制
cat /etc/certs/cacert.pem subCA_websites.crt > chain.pem
openssl verify -CAfile chain.pem cups1.crt
cups1.crt: OK

现在,我还希望Windows将这些证书视为有效证书。问题是: Windows没有看到证书链:

但是,在安装了subCA的证书之后,CUPS1.local的证书是有效的。

因此,可能我误解了一些基本知识:是否需要将每个subCA的证书安装为受信任的根证书颁发机构?是否有另一种方法将证书链实现到CUPS1.local的证书中,这样我只需要安装ROOT_CA而不是所有的子to?

简短更新:由于证书是为一个网站(CUPS服务器)设计的,因此该链通过合并来工作:

代码语言:javascript
复制
cat cups1.crt subCA_websites.crt /etc/certs/cacert.pem > chain.crt

当我将这个chain.crt添加到CUPS服务器(以及密钥文件)时,我可以打开网站,而不会出现错误消息。我不需要安装subCA证书,只有ROOT_CA才行。

不管怎样,出于好奇,我想了解一下windows是否也能以某种方式读取链子?

EN

回答 2

Security用户

回答已采纳

发布于 2021-04-17 12:17:55

是否需要将每个subCA的证书安装为受信任的根证书颁发机构?

否,只将根CA证书安装到受信任的根CA存储区。中间CA证书转到中间CA存储区。

是否有另一种方法将证书链实现到CUPS1.local的证书中,这样我只需要安装ROOT_CA而不是所有的子to?

是的,只要在CA和CA颁发的证书中实现权限信息访问就可以获得所有所需的证书。

不管怎样,出于好奇,我想了解一下windows是否也能以某种方式读取链子?

Windows完全支持X.509链,但是它的实现与Linux中的实现略有不同。Windows不支持文件中连接的多个PEM证书。相反,必须通过以下方式提供其他证书:

  • Windows证书存储中本地安装的证书
  • PKCS#7消息
  • 权威信息访问证书扩展
票数 1
EN

Security用户

发布于 2021-04-17 12:17:37

不管怎样,出于好奇,我想了解一下windows是否也能以某种方式读取链子?

没有“不知何故读到锁链”。它要么有必要的链证书,要么没有。如果证书是预先提供的(即安装在本地),或者是在验证过程中提供的,那么它就可以拥有证书。后者是常见的情况,即在TLS握手期间,web服务器实际上提供了所有必要的链证书和服务器证书。

如果缺少链证书,一些实现可能会尝试填写丢失的链证书以进行验证。例如,Firefox缓存过去网站上看到的链证书,然后尝试使用这些缓存的证书来填充丢失的链证书。这对于公共网站非常有效,因为受信任的根CA只使用一小部分链证书。Chrome还试图从证书中的授权信息访问( Authority Information Access ) CA颁发机构信息中提取缺失链证书的URL,然后从给定的URL中加载缺失的颁发者证书。

票数 1
EN
页面原文内容由Security提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://security.stackexchange.com/questions/248405

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档