如何模拟非SNI浏览器(没有SNI支持)?

wat*_*ery 16 ssl client sni

我正在为具有多个不同SSL证书的Apache设置Apache,这些证书位于同一服务器上(因此共享相同的IP地址).

通过Qualys SSL测试,我发现有些客户(即截至2013年12月的BingBot)不支持SNI扩展.

所以我正在考虑制作一个特殊的默认Web应用程序来收集这些客户端的请求,但我该如何模拟这些客户端呢?

我在Windows 8上,如果重要的话,无法访问Linux机器.

zak*_*jan 19

您可以使用最常用的SSL库OpenSSL.可以下载Windows二进制文件.

openssl s_client -connect domain.com:443命令非常适合从客户端测试SSL连接.它默认不支持SNI.您可以附加-servername domain.com参数以启用SNI.

  • 对于openssl 1.1.0*及更早版本,这是正确的.在1.1.1*版本中,s_client默认发送"server_name"扩展名(使用"-connect"参数中指定的任何主机).如果您不想在较新版本中发送"server_name",则必须使用"-noservername"将其关闭. (6认同)

小智 6

如果您使用的是 OpenSSL 1.1.0 或更早版本,请使用openssl s_client -connect $ip:$port,并且 OpenSSL 不会启用 SNI 扩展

如果您使用的是 OpenSSL 1.1.1,则需要将-noservername标志添加到openssl s_client.


小智 5

与 openssl s_client 类似的是 gnutls-cli

gnutls-cli --disable-sni www.google.com
Run Code Online (Sandbox Code Playgroud)