https如何支持虚拟主机

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

内容简介:https如何支持虚拟主机

如今(2017年了)在同一个nginx上配置多个域名,是稀松平常的事,纵然是使用https,也不过多配置几个证书的事情,似乎没有什么维护上的困难。然而,细思起来,背后却有很多故事,以至很多网站现在也苦恼不已。

1 基于Host的虚拟主机

Http协议中有Host头,nginx等web服务器正是根据Host的内容,选择不同的虚拟主机。

2 HTTPS 为什么不行

基于Host的虚拟主机,Http没有问题,但是Https不行,为什么呢?因为Https使用SSL/TLS,需要SSL证书才能建立连接,但是同一个nginx上配置了多个SSL证书,使用哪个呢?根据Host选择?这是不可能的,因为Host是Http协议的内容,而这一切发生在发送Http请求前,此时Host还没发送呢。

3 古老的解决方案

在服务器上配置多个IP,一个虚拟主机监听一个IP,对应一个域名,一个SSL证书。这没啥毛病,就是维护起来非常困难。一是nginx配置复杂,每台机器的nginx都和本机的IP有关。二是HA比较困难,VIP漂移也白漂,因为nginx里面IP写死了。

使用多域名证书或者泛域名证书也是一个办法,少量域名还行,域名多了应付起来也费劲。

4 SNI 是干什么的

SNI全称Server Name Indication,它扩展了TLS协议。在请求SSL证书时,把Host放在SNI(明文)里面,这样nginx根据SNI发送合适的证书给客户端。这样HTTPS就和HTTP统一了。通过抓包很容易看出来Host作为SNI放到了请求中。下面是请求 https://www.sogou.com 的情况。

https如何支持虚拟主机

5 客户端和服务器的支持情况

服务器对SNI的支持一向很好,关键是客户端,除了浏览器还有各种语言的开发库,这里面IE6和XP上的IE7都不支持SNI,偏偏这两者在国内的市场份额还很大。这两年小了很多,以后会更少,基本可以忽略这批用户了。这篇文章的意义在于理解Https支持虚拟主机的渊源。


以上所述就是小编给大家介绍的《https如何支持虚拟主机》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

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

游戏测试精通

游戏测试精通

舒尔茨 / 周学毛 / 清华大学出版社 / 2007-9 / 48.00元

《游戏测试精通》来自3位在游戏测试领域都有着极其丰富经验的专业人员,是亚马逊“五星级”畅销书,也是国内第一本专业级游戏测试经典之作,不仅内容全面、实例丰富,而且讲解透彻、可读性强,并提供多个资源下载和技术支持站点。现如今,游戏产业发展迅猛,游戏测试已成为游戏产品、游戏软件、游戏程序设计与开发不可或缺的环节。《游戏测试精通》主要揭示了如何将软件测试的专业方法运用到游戏产业中,全面涵盖了游戏测试的基本......一起来看看 《游戏测试精通》 这本书的介绍吧!

URL 编码/解码
URL 编码/解码

URL 编码/解码

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具