Ssl TLS握手中的多个证书”;证书;消息
我的任务是从HTTPS消息解析服务器名称。我被要求从“clienthello”扩展和“certicate”、“commonname”字段解析它 “证书”消息中有多个证书。例如,当使用https打开google并通过wireshark收听时,我看到两个证书,第一个是commonname“*.google.com”,第二个是commonname“google internet authority”。第一个是我连接的服务器名,第二个是签署证书的机构Ssl TLS握手中的多个证书”;证书;消息,ssl,ssl-certificate,x509certificate,Ssl,Ssl Certificate,X509certificate,我的任务是从HTTPS消息解析服务器名称。我被要求从“clienthello”扩展和“certicate”、“commonname”字段解析它 “证书”消息中有多个证书。例如,当使用https打开google并通过wireshark收听时,我看到两个证书,第一个是commonname“*.google.com”,第二个是commonname“google internet authority”。第一个是我连接的服务器名,第二个是签署证书的机构 我的问题是,我是否可以确保服务器名称(在我的例子中是
我的问题是,我是否可以确保服务器名称(在我的例子中是google.com)将始终出现在第一条证书消息中。如果我只想获取servername,是否需要关心证书消息中的其他证书。事实上,rfc 2246、4346和5246(分别为TLS 1.0、TLS 1.1和TLS 1.2)都声明服务器证书应该是第一个证书: “这是X.509v3证书的序列(链)。发件人的 证书必须排在列表的第一位。以下各项 证书必须直接证明其前面的证书。” 在SSL 3.0中也很清楚: “证书列表:这是X.509.v3的序列(链)
证书,先订购发件人的证书,然后订购
由任何证书颁发机构证书按顺序进行
向上。”
但在现实世界中,有许多配置错误的服务器以任何顺序发送证书,因此您必须对它们进行重新排序,抱歉。顺序可能会有所不同,因此您需要获取所有证书并查找其中哪一个是最终实体。这让我很困惑“发件人的证书必须在列表中排在第一位”。您是否有重新排序模式的建议。@KadirerDemdimer,在每个证书中查找颁发者DN和使用者DN:以下证书的使用者DN(证明其前面的证书)应该是该证书的颁发者DN。