内容简介:近几天,准备在nginx给多个域名配证书,原想着在不同的server下配不同的证书是多么自然的一件事情啊。然后老大跟我说不能,这样会收不到请求,我说为啥呢?在这篇 文章中,我们可以看到, SSL其实位于TCP/IP协议层中,应用层和运输层之间,尚未到达HTTP这一层,但是又位于TCP之上。 我们知道,Nginx支持在一个IP上服务多个域名,原因就在于,HTTP协议里有一个字段是
近几天,准备在nginx给多个域名配证书,原想着在不同的server下配不同的证书是多么自然的一件事情啊。
然后老大跟我说不能,这样会收不到请求,我说为啥呢?
在这篇 文章中,我们可以看到,
SSL其实位于TCP/IP协议层中,应用层和运输层之间,尚未到达HTTP这一层,但是又位于TCP之上。
我们知道,Nginx支持在一个IP上服务多个域名,原因就在于,HTTP协议里有一个字段是 Host
,通过匹配
这个字段的值和 nginx.conf
中的 server_name
,Nginx就可以方便的把请求转发到对应的内容服务器上去。
但是对于HTTPS却行不通,为什么呢?上面说过,SSL位于HTTP协议和TCP协议之间,也就是说,一个请求到来, 在握手阶段,SSL并不知道这个请求到底是请求哪个Host。而要知道Host,就需要解密HTTP请求,但是SSL这一层正是 为了加密HTTP的。于是就陷入了一种先有鸡还是先有蛋的问题。
所以有了SNI:Server Name Indication,工作原理是在SSL握手的阶段,浏览器把Host字段一起发过去。这样 Nginx便可以在一个IP上服务多个HTTPS服务。但是这个技术有三个要求:
nginx -V nginx -V
老大所说的不能,其原因就是因为有一部分用户还在使用非常非常老的浏览器 :(
参考:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
About Face 3
Alan Cooper、Robert Reimann、David Cronin / John Wiley & Sons / 2007-5-15 / GBP 28.99
* The return of the authoritative bestseller includes all new content relevant to the popularization of how About Face maintains its relevance to new Web technologies such as AJAX and mobile platforms......一起来看看 《About Face 3》 这本书的介绍吧!