过期的ssl证书是否会被验证,类似于SSL pining中的无效证书?

问题描述 投票:0回答:1

我有根证书、中间证书和叶证书。

如果我把这些证书都钉在我的移动应用中,那么比如说......我有根证书、中级证书和叶证书。leaf cert已经过期。

但是连接仍然会被接受,因为中间证书和根证书已经被钉住了。

如果有人发送一个不同的证书,不是我的过期叶子证书,但它是由相同的中间或根证书签署的呢?

由于根证书和中间证书在这个不同的证书中也是一样的,所以连接还能建立吗?

ssl https ssl-certificate tls1.2
1个回答
0
投票

在使用中,有各种类型的引脚。

  • 一种是针对叶状证书的钉入 这意味着只有这个证书才会被接受。这也可以选择与额外的过期、撤销等检查相结合,在这种情况下,只有当证书是预期的,并且符合额外的约束条件(过期,...)时,才会被接受。
  • 我们可以针对叶子证书的公钥进行引脚。这就像针对叶子证书本身的引脚一样,但只要公钥保持不变,它也会处理证书的更新。同样,这也可以选择与检查过期等相结合。
  • 我们可以针对一个特定的CA证书进行引脚。在这种情况下,正常的证书验证将被完成(即建立信任路径,检查主题,过期,......),但另外,它将要求一个特定的CA或具有相同公钥的证书是信任链的一部分,无论是作为中间证书还是根证书。

如果我在我的移动应用中钉上所有这些证书,那么假设叶子证书已经过期了。 但连接仍然会被接受,因为中间证书和根证书已经被钉住了。

如果針對葉狀證書進行了釘定,那麼只有在釘定過程中沒有附加限制(特別是檢查過期)的情況下,它才會接受過期的證書。

如果有人寄来的证书不是我的过期叶子证书,但它是由同一个中间或根证书签署的,怎么办?

如果針對特定的葉狀憑證進行了釘裝,它不會接受任何其他憑證作為葉狀憑證,不管是否也針對CA憑證進行了釘裝。这样做的目的是为了满足所有的要求,而不是仅仅满足某些要求。

如果只对CA证书进行了钉接,那么就会进行正常的证书验证(特别是主题与预期的域相匹配),另外还会检查被钉接的CA是否在信任路径中。


-1
投票

我测试了在dart应用程序中使用以下方法将SSL证书(证书以pem文件的形式)钉入其中 setTrustedCertificates 的方法。

注意事项 :

当...根证书、中间证书和NUCLEI的NON EXPIRED叶证书有效时,连接建立成功。

  • 当有效的根证书、有效的中间证书和NUCLEI的NON EXPIRED叶证书被钉住时。
  • 当有效的根证书、有效的中间证书和NUCLEI的EXPIRED叶证书被钉住时。
  • 当有效的根证书、有效的中间证书和无效的叶证书被钉住时。
  • 当只有有效的NUCLEI的叶子证书被钉住时。
  • 当一个NON EXPIRED NUCLEI的叶子证书和一个EXPIRED NUCLEI的叶子证书被钉住时。

当...时,连接失败,出现CERTIFICATE_VERIFY_FAILED错误。

  • 当只有无效的叶子证书被钉住时。
  • 当EXPIRED叶子证书被钉住时。

总结:将所有的叶子证书钉在一起是没有意义的。

  • 钉住一个主机的所有根证书、中间证书和叶证书是没有意义的。
  • 任何无效的恶意叶子证书,但由相同的根证书或中间证书签署,也被接受。
  • 所以,最好是只钉住叶子证书。但如果担心叶子证书过期,那么我们就必须将中间证书钉住,然后将叶子证书从钉子中移除。
  • 为了最大的安全
    • 我們應該只針對葉狀證書。
    • 为了应对证书到期,我们可以将多个叶子证书钉在不同的到期时间上。
    • 如果不能钉入多个叶子证书,那么最好的选择是只钉入中间证书,并将其他证书从钉入中移除。
© www.soinside.com 2019 - 2024. All rights reserved.