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_cert2
、some_cert3
.... some_certn
以相同方式签名)被我的应用程序识别为可信证书还是我误解了 truststore
的工作原理?
只要 some_certx
是由同一个 SubCA/CA 签署的,并且如果这些 CA 证书被客户端信任,你应该是好的,这意味着 some_certx
将是被认可为信任证书。
如何以及为什么?
与安全服务器通信的客户端(例如:浏览器)查看服务器的证书是否由客户端信任的 CA 签名。如果服务器的证书是由客户端不知道的 CA 签名的,则不存在信任链。简而言之,客户端不信任信任服务器的组织 (CA)。这就是信任链的意思,我信任信任你的组织吗?如果我信任信任你的组织,我就可以信任你。
您可能在想最终实体 (some_certx) 的作用是什么。客户有自己的方法来检查证书的有效性和状态(已撤销或未撤销)。这些检查所需的数据可以在最终实体证书本身中找到。可以使用 Valid from
和 Valid to
字段验证证书的有效性,可以使用 CRL
或 OCSP
检查证书的状态。这些 URL 可以在证书的 CRL Distribution Point
或 Authority Info Access
扩展中找到。
如果上述 2 个条件中的任何一个失败,则服务器不可信任。
假设我有以下认证链
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_cert2
、some_cert3
.... some_certn
以相同方式签名)被我的应用程序识别为可信证书还是我误解了 truststore
的工作原理?
只要 some_certx
是由同一个 SubCA/CA 签署的,并且如果这些 CA 证书被客户端信任,你应该是好的,这意味着 some_certx
将是被认可为信任证书。
如何以及为什么?
与安全服务器通信的客户端(例如:浏览器)查看服务器的证书是否由客户端信任的 CA 签名。如果服务器的证书是由客户端不知道的 CA 签名的,则不存在信任链。简而言之,客户端不信任信任服务器的组织 (CA)。这就是信任链的意思,我信任信任你的组织吗?如果我信任信任你的组织,我就可以信任你。
您可能在想最终实体 (some_certx) 的作用是什么。客户有自己的方法来检查证书的有效性和状态(已撤销或未撤销)。这些检查所需的数据可以在最终实体证书本身中找到。可以使用 Valid from
和 Valid to
字段验证证书的有效性,可以使用 CRL
或 OCSP
检查证书的状态。这些 URL 可以在证书的 CRL Distribution Point
或 Authority Info Access
扩展中找到。
如果上述 2 个条件中的任何一个失败,则服务器不可信任。