TrustStore:CA 的 SSL 证书验证

TrustStore: SSL certificate validation by CA

假设我有以下认证链

some_company
     |______ some_company_technical
                       |_____________some_cert1

some_cert1每年都会更换。通过将 根证书 中间证书 导入我客户的 truststore...

keytool -import -trustcacerts -alias some_company -file some_company.crt -keystore some_client.jks
keytool -import -trustcacerts -alias some_company_technical -file some_company_technical.crt -keystore some_client.jks

...将 some_cert1(和 some_cert2some_cert3 .... some_certn 以相同方式签名)被我的应用程序识别为可信证书还是我误解了 truststore 的工作原理?

只要 some_certx 是由同一个 SubCA/CA 签署的,并且如果这些 CA 证书被客户端信任,你应该是好的,这意味着 some_certx 将是被认可为信任证书。

如何以及为什么?

与安全服务器通信的客户端(例如:浏览器)查看服务器的证书是否由客户端信任的 CA 签名。如果服务器的证书是由客户端不知道的 CA 签名的,则不存在信任链。简而言之,客户端不信任信任服务器的组织 (CA)。这就是信任链的意思,我信任信任你的组织吗?如果我信任信任你的组织,我就可以信任你。

您可能在想最终实体 (some_certx) 的作用是什么。客户有自己的方法来检查证书的有效性和状态(已撤销或未撤销)。这些检查所需的数据可以在最终实体证书本身中找到。可以使用 Valid fromValid to 字段验证证书的有效性,可以使用 CRLOCSP 检查证书的状态。这些 URL 可以在证书的 CRL Distribution PointAuthority Info Access 扩展中找到。

如果上述 2 个条件中的任何一个失败,则服务器不可信任。