TLS握手“证书”消息中的多个证书

时间:2013-04-05 08:17:36

标签: ssl ssl-certificate x509certificate

我的任务是从HTTPS消息中解析服务器名称。我被要求从“客户端问候”扩展和“certicate”,“commonname”字段解析它。

“证书”消息中有多个证书。例如,当使用https打开谷歌并通过wireshark收听时,我看到2个证书首先具有通用名称“* .google.com”,第二个具有通用名称“Google互联网权限”。第一个是我连接的服务器名称,第二个是签署证书的权限。

我的问题是,我可以确定服务器名称(在我的情况下是google.com)将始终位于第一个证书消息中。如果我只想获取服务器名,是否需要关注证书消息中的其他证书。

1 个答案:

答案 0 :(得分:2)

事实上,rfc 2246,4346和5246(分别是TLS 1.0,TLS 1.1和TLS 1.2)都声明服务器证书应该是第一个:

  

“这是X.509v3证书的序列(链)。发件人的    证书必须在列表中排在第一位。以下各项    证书必须直接证明其前面的证书。“

在SSL 3.0中也很清楚:

  

“certificate_list:这是X.509.v3的序列(链)   证书,首先按照发件人的证书订购   由任何证书颁发机构证书顺序进行的   向上“。

但在现实世界中,有很多配置错误的服务器以任何顺序发送证书,所以你必须重新排序它们,抱歉。