内容简介:近几天,准备在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
老大所说的不能,其原因就是因为有一部分用户还在使用非常非常老的浏览器 :(
参考:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- Nginx单IP地址配置多个SSL证书
- RHCE证书,CCNA证书
- DV SSL证书和其他证书有什么不同?
- 生成根证书CA及签发子证书及配置站点实践
- OpenSSL命令速查手册:证书、私钥与证书签名请求文件
- 技术讨论 | Apostille:让假证书以假乱真的证书伪造工具
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
JavaScript基础教程
Tom Negrino、Dori Smith / 陈剑瓯 / 人民邮电出版社 / 2007-9 / 45.00元
《JavaScript基础教程》(第6版)循序渐进地讲述了JavaScript 及相关的CSS、DOM与Ajax 等技术。书中从JavaScript 语言基础开始,分别讨论了图像、框架、浏览器窗口、表单、正则表达式、用户事件和cookie,还有两章讲述了Ajax 基础。《JavaScript基础教程》(第6版)不仅有对于基础知识和使用方法的介绍,也包含了对JavaScript 应用示例的深入探讨。一起来看看 《JavaScript基础教程》 这本书的介绍吧!