我有一个非常具体的问题。
客户端通过获取证书并检查特定值以及中间 CA 的数字签名是否正确(根据存储在客户端计算机上的公钥)来验证服务器。
- 选项 A: 客户端是否不确保中间 CA 签名(由根 CA 签名)有效,以及根数字签名(由根 CA 自签名)与存储在计算机上的公钥相关联?
或者
- 选项 B: 客户端是否看到服务器的数字签名是正确的,因此使用存储在证书存储中的信息来组成链的其余部分(即,如果证书 B 用于签署服务器证书,那么我的证书存储说证书 A 用于签署证书 B,因此我将把它作为链的其余部分展示)
我了解整个链都安装在服务器上,但是客户端使用所有证书吗?
这是由我的普遍兴趣引发的,我遇到了一个没有正确安装中间证书的案例,Google Chrome 和 Internet Explorer 接受了它,但 Firefox 4.0 没有。
我希望我的问题尽可能清楚。
为了不混淆问题,我特意去掉了 SSL 验证中使用的其他一些步骤。
注意:我在编辑时发现了与此问题相关的不可见图像:
