我正在尝试使用 openssl 验证证书。我验证了证书链本身,我想检查证书的主题是否与 SSL 字段中的服务器名称匹配。
我的代码在 SSL 会话上运行,首先我想从数据包中提取服务器名称(为此,我尝试使用ssl.handshake.extensions_server_name
tshark 中的字段)并将其与标题为“X509v3 主题备用名称”的命令输出中的域进行检查openssl x509 -text -noout cert.pem
。
它在我的测试文件上运行良好,但在大型文件上运行代码时,似乎有些 SSL 会话没有带有上述字段的数据包(即使浏览器没有发出任何警报)。
我如何才能验证服务器的名称?
注意:我手动检查了证书的“X509v3 主题备用名称”,名称包括以下列表:
*.akamaihd.net, *.akamaihd-staging.net, a248.e.akamai.net, *.akamaized.net, *.akamaized-staging.net
我的问题是否可能是因为名称属于 Akamai 而发生的?我该如何解决这个问题?
编辑:该注释不相关,我检查了另一个文件的代码,发现服务器也存在同样的问题,证书中明确包含其名称。问题是 - 握手中怎么可能不包含服务器名称?当这种情况发生时,我如何获得应该与证书中的名称进行验证的名称?
谢谢!