今天心血来潮去ssllabs检测了下,结果是这样:This site works only in browsers with SNI support
这是啥情况?
ssl在最早情况下只能一个ip对应一个证书(或泛域名证书可以用于多个站点),但由于这样ip和域名几乎都快变成一对一了实在是没法用,于是后来增加了SNI这个扩展,可以在传递证书之前就告诉服务器想要访问的域名,服务端就可以给出相应的证书了,这样一个ip就可以用于无限多的域名了。
条件是请求的客户端需要支持SNI,否则服务端依然不知道应该给客户端发什么证书,这就是你这个警告的来历了。不过不需要担心的是这个SNI标准已经提出很多很多年了,现在除了xp这样的老古董外已经几乎找不到不支持sni的客户端了
PS:由于SNI的传递在证书之前,因此SNI是不加密的,这就是墙可以拦截https域名的原理
yousihai 发表于 2025-4-9 12:37
ssl在最早情况下只能一个ip对应一个证书(或泛域名证书可以用于多个站点),但由于这样ip和域名几乎都快变 ...
只是想要解决这个的话很简单,例如如果你是用nginx的话,就设置一个https域名为默认站点即可
yousihai 发表于 2025-4-9 13:46
只是想要解决这个的话很简单,例如如果你是用nginx的话,就设置一个https域名为默认站点即可 ...
默认站点不能为空, 默认站点必须为https站点,不能只是http站点,默认站点需要和你测试用的域名一致
yousihai 发表于 2025-4-9 15:29
默认站点不能为空, 默认站点必须为https站点,不能只是http站点,默认站点需要和你测试用的域名一致 ...