当我们需要验证一个服务器上的 SNI 域名是否正常的时候,通常需要在浏览器或 openssl 来获取到证书,然后检查证书里相应的字段是否包含域名,但这种方式极为不便。
为了简化验证的过程,我使用 Nodejs 开发了一个小工具 sni-detector
用于验证指定服务 器上的 SNI 是否包含指定的测试域名。
使用方式非常简单,先使用 NPM 来安装:
npm install -g sni-detecotr
在安装成功后,就可以使用 sni-detect
命令来验证了。
使用 sni-detect --help
可以查看相应的参数说明,在此,我以测试域名 www.baidu.com和 img.baidu.com来验证 IP 为 14.215.177.52的服务器为例:
sni-detect -t www.baidu.com,img.baidu.com 14.215.177.53
如果返回 14.215.177.52 OK表明验证通过,如果返回 14.215.177.52 Failue表明验证失败。 这里如果需要查看失败的详细信息,可以加上 --verbose
参数:
sni-detect -t www.baidu.com,img.baidu.com --verbose 14.215.177.53
PS :本工具仅支持 Node.js v6+
本工具也同时开源在 Github上,欢迎提 issue 和 PR 。