仅仅是由于我自己的网络中的私有兴趣和使用,我正在使用openssl创建一个证书链(根CA→中间CA→服务器证书)。我希望证书链是可追踪的,并且能够撤销证书。
目前,我还不确定在创建证书时应该设置哪些CRL分发点( openssl语音中的crlDistributionPoints)和OSCP (authorityInfoAccess = OCSP;URI: ...和authorityInfoAccess = OCSP;caIssuers: ...)。检查一些公共网站的证书,在我看来,以下是一条路。那么,请你检查一下我是否是对的?
根CA证书:
中级CA证书:
服务器证书:
*一个OCSP响应者似乎可以处理根和中间CA的OSCP请求。如果是这样的话,我也可以使用根CA的OSCP URI,对吗?
因此,每个证书数据都必须指向“一个级别”,到可以检查其自身有效性的位置。对吗?
提前谢谢你!
发布于 2020-04-08 05:54:38
所有这些字段对于根证书都没有任何意义,因为应用程序已经知道了,而撤销它的唯一方法就是修改应用程序。没有比根CA更可信的CA来证明根是可信的,或者它不应该再被信任(即撤销)。
所有这些字段都是可选的,基准需求定义了公开信任的证书颁发机构所需的内容,只需要中间CA证书的CRL分发点。
对于CRL分发点,如果只指定uri,则认为指向由同一颁发机构签名的CRL,如果证书被撤销,CRL将包含对此证书的引用。不需要证书颁发机构颁发的所有证书都具有相同的CRL分发点,您可以分割它们,这样CRLs就不会增长太多(例如,每发出1000份证书,就会更改CRL分发点,而该URL上的CRL只包含对这1000份证书的引用)。
但是,除了CRL分发点中的URL之外,还可以指定一个crlIssuer字段,以指定CRL将由不同的CA签名。因此,您还可以指向叶子证书和中间证书中的相同的CRL,并在叶证书中指定crlIssuer是根证书,尽管这需要使用根证书来撤销叶.
对于OCSP URI,它应该指向可以为证书提供OCSP响应的OCSP服务器。与CRLs类似,您不需要对由给定CA颁发的所有证书使用相同的服务器,并且可以对其进行分割,尽管这并不常见,因为OCSP的回答不会随着CA颁发的证书数量的增加而增加。您还可以指向与其他证书使用的URL相同的URL。OCSP查询中提供了用于检查OCSP的证书的标识符,因此即使服务器处理多个CA,也可以使用正确的答案进行应答。
如果存在,CA颁发机构必须指向包含颁发证书的证书的url,尽管该url可以包含多个证书,这些证书编码为仅为证书的CMS消息。不过,我不知道这种可能性经常被使用。
这在RFC5280 ( CRL分发点的第4.2.1.13节和第4.2.2.1节用于权限信息访问,包括OCSP和CA发行者)中都有记录。
https://security.stackexchange.com/questions/229284
复制相似问题