为什么root CA只能由OS验证(而不是由应用程序验证)

时间:2016-08-03 04:07:14

标签: ssl-certificate root-certificate

我得到了一个提示,应用程序无法验证根CA(只有操作系统可以)。我想得到以下几点的答案:

a)只有操作系统可以验证根CA吗?

b)(如果是)为什么不能使用应用程序(特别是Web浏览器)验证根CA?

c)(如果是)那么浏览器如何验证SSL证书?

2 个答案:

答案 0 :(得分:1)

'根CA'是我们信任的组织。组织曾经生成过证书(一对公钥和私钥)。公钥与任何其他现有的公钥没有什么不同,只是它预先安装到操作系统中,我们都同意它是好的和可信的。

当我们浏览常规HTTPS站点时,我们会获得带有公钥的证书(例如https://www.google.com的证书)。最初我们不相信该证书,但操作系统或应用程序可以验证证书是否包含由我们已知的根CA签名的证明...或者它包含由另一个可信证书签署的证明(种类)递归)

对于根CA证书,无法以相同的方式进行此链验证。因为它是Root,所以没有其他可信证书签名,(这就是它的根)。但是任何人都可以验证它,就像检查它是否已经安装到我们操作系统的Trusted Root Certificate Store中一样。

因此,这是根证书和常规证书之间的区别。

话虽如此,操作系统或任何应用都可以验证任何类型的证书。

答案 1 :(得分:0)

不,应用程序无法验证根CA.

例如,浏览器会一直这样做。

作为另一个例子,核心Java有一整套软件包(JSEE框架和支持类),除此之外,它还允许您编写可以验证证书(包括根证书)的应用程序。