我得到了一个提示,应用程序无法验证根CA(只有操作系统可以)。我想得到以下几点的答案:
a)只有操作系统可以验证根CA吗?
b)(如果是)为什么不能使用应用程序(特别是Web浏览器)验证根CA?
c)(如果是)那么浏览器如何验证SSL证书?
答案 0 :(得分:1)
'根CA'是我们信任的组织。组织曾经生成过证书(一对公钥和私钥)。公钥与任何其他现有的公钥没有什么不同,只是它预先安装到操作系统中,我们都同意它是好的和可信的。
当我们浏览常规HTTPS站点时,我们会获得带有公钥的证书(例如https://www.google.com的证书)。最初我们不相信该证书,但操作系统或应用程序可以验证证书是否包含由我们已知的根CA签名的证明...或者它包含由另一个可信证书签署的证明(种类)递归)
对于根CA证书,无法以相同的方式进行此链验证。因为它是Root,所以没有其他可信证书签名,(这就是它的根)。但是任何人都可以验证它,就像检查它是否已经安装到我们操作系统的Trusted Root Certificate Store
中一样。
因此,这是根证书和常规证书之间的区别。
话虽如此,操作系统或任何应用都可以验证任何类型的证书。
答案 1 :(得分:0)
不,应用程序无法验证根CA.
例如,浏览器会一直这样做。
作为另一个例子,核心Java有一整套软件包(JSEE框架和支持类),除此之外,它还允许您编写可以验证证书(包括根证书)的应用程序。