什么是 SNI?】的更多相关文章

转载自: http://openwares.net/misc/server_name_indication.html Server Name Indication是用来改善SSL(Secure Socket Layer)和TLS(Transport Layer Security)的一项特性.它允许客户端在服务器端向其发送证书之前请求服务器的域名.这对于在虚拟主机模式使用TLS是必要的. TLS背景 加密一个面向流的通讯会话最常用的方法之一就是使用TLS协议.比如,当用户在浏览器的地址栏里面输入h…
概述 传统的每个SSL证书签发,每个证书都需要独立ip,假如你编译openssl和nginx时候开启TLS SNI (Server Name Identification) 支持,这样你可以安装多个SSL,绑定不同的域名,可以共享同一个ip. 近期由于遇到申请通配符版证书时,比如*.bb.com这样的二级域名时,主域名为二级域名时,主域名和其子通配符下的域名可以用同一张证书,但是像*.aa.bb.com这样的证书不包含其三级主域名,只有二级的域名支持.此时便会遇到这种一个IP绑定多个证书的情况.…
早期的SSLv2根据经典的公钥基础设施PKI(Public Key Infrastructure)设计,它默认认为:一台服务器(或者说一个IP)只会提供一个服务,所以在SSL握手时,服务器端可以确信客户端申请的是哪张证书. 但是让人万万没有想到的是,虚拟主机大力发展起来了,这就造成了一个IP会对应多个域名的情况.解决办法有一些,例如申请泛域名证书,对所有*.yourdomain.com的域名都可以认证,但如果你还有一个yourdomain.net的域名,那就不行了. 在HTTP协议中,请求的域名…
名词解释: SNI指是一项用于改善SSL/TLS的技术,在SSLv3/TLSv1中被启用.它允许客户端在发起SSL握手请求时(具体说来,是客户端发出SSL请求中的ClientHello阶段),就提交请求的Host信息,使得服务器能够切换到正确的域并返回相应的证书. 上面这句哪都有,没什么含金量.下面是我的理解. SSL网站用的证书,提交到web服务器时,原本设计的是按服务器IP+端口来提交的.这样就造成了同一服务器IP的443端口,只能用一个证书.这样设计比同一IP和端口的,多主机头设计差太多.…
依赖 yum -y install pcre-devel openssl openssl-devel library 编译: mkdir /data/nginx/ -p ./configure --prefix=/data/nginx/ --with-http_stub_status_module --with-http_ssl_module --with-stream --with-stream_ssl_module 版本信息 [root@umout-verify sbin]# ./nginx…
上一篇看到STAGE_HANDSHAKE中的处理,到发出fake reply.这之后会从socks5 request中解析出remote addr and port,即客户端实际想要访问的服务器地址和端口.根据request->atyp,有三种情况,atyp为1,请求中带的是ipv4的地址,为3是域名,为4是ipv6地址.ss-local会把remote addr & port填入server->abuf中,可以认为abuf中是要发送到ss-server的内容. buffer_t *a…
默认:SSL协议进行握手协商进行连接的时候,默认是不会发送主机名的,也就是是以IP的形式来进行https连接握手协商的,这就导致一个问题,当一台服务器上有多个虚拟主机使用同一个IP的时候, Nginx进行反代就会报错! SNI(Server Name Indication):就是为了解决一个服务器,同一个IP,使用多个域名证书的情况,也就是使用SSL连接服务器的时候,先发送访问的站点域名,这样服务器就会根据域名返回一个合适的证书. Nginx开启SNI: proxy_ssl_server_nam…
网站ssl检测工具 https://www.ssllabs.com/ssltest/analyze.html?d=gggl.houseoflux.com.cn https://myssl.com/         #网站SSL安全监测 今天遇到一个问题,通过cdn取源站的数据取不到,通过测试确认源站支持的cipher suites 与我们不同. 客户源站: 我们cdn: 两者匹配不上造成的ssl握手失败,给出来的报错是 Server sent fatal alert: handshake_fai…
遇到的问题,服务器多站点配置HTTPS 后遇到的问题,服务器报警告错误. 随后网上搜索了下 SNI的意义. 这句话很经典: SNI(Server Name Indication)是为了解决一个服务器使用多个域名和证书的SSL/TLS扩展.一句话简述它的工作原理就是,在连接到服务器建立SSL链接之前先发送要访问站点的域名(Hostname),这样服务器根据这个域名返回一个合适的证书.目前,大多数操作系统和浏览器都已经很好地支持SNI扩展,OpenSSL 0.9.8已经内置这一功能,新版的nginx…
SSL握手中win xp和SNI的那点事 一.背景需求server1-3使用不同的域名对外提供https服务,用nginx作为前端负载均衡器并负责https集中解密工作(以用户访问的域名为依据进行流量分配,同样的也是以域名为依据来判断应该将哪张证书丢给用户.即:SNI(Server Name Identification)功能),用户为WIN XP和WIN 7(都使用IE8浏览器). [root@localhost ~]$ nginx -V nginx version: nginx/1.14.2…