SNI: 让Nginx在一个IP上使用多个证书

栏目: 服务器 · Nginx · 发布时间: 7年前

内容简介:近几天,准备在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

老大所说的不能,其原因就是因为有一部分用户还在使用非常非常老的浏览器 :(

参考:


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

图解网络硬件

图解网络硬件

[日] 三轮贤一 / 盛荣 / 人民邮电出版社 / 2014-7 / 69.00元

本书详细介绍了计算机网络硬件的相关知识,在对硬件设备、相关技术及规范进行详尽考据和整理的同时,侧重工程实践,重点讲述了在实际网络建设工程中真实使用的网络硬件设备及其相关背景知识,能够帮助读者深入理解计算机网络在工程实践中某些容易混淆的概念,如L3交换机和路由器等。 本书在讲解的同时,还辅以丰富的图例,使计算机网络设备的真实情况一目了然,同时深入浅出地介绍了原本复杂抽象的计算机网络术语,因此对......一起来看看 《图解网络硬件》 这本书的介绍吧!

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

html转js在线工具
html转js在线工具

html转js在线工具