vaynedu / nginx-1.16.0

学习nginx架构设计与实现,翻译nginx的源码,写nginx的测试代码, 在issue中记录nginx的精妙设计及其常见问题https://github.com/vaynedu/nginx-1.16.0/issues 。 myexercise内存池、哈希表、链表、md5、crc测试代码,mymodule中有hello自定义模块代码。通过nginx将自己整个知识体系连接起来
https://github.com/vaynedu/nginx-1.16.0/issues
BSD 2-Clause "Simplified" License
12 stars 2 forks source link

https 怎么才可以走ip + host直通访问? #69

Open vaynedu opened 4 years ago

vaynedu commented 4 years ago

首先解释下 什么是 ip + host直通, 也就是url带上了访问目的ip,不需要dns解析域名了,少了一次rtt。 例子: http://1.1.1.1/github.com/1.mp4 具体再看看https://github.com/vaynedu/nginx-1.16.0/issues/2

那https是否也可以走ip + host 直通呢? 答案是不行。 因为在证书校验阶段, ip 被当作host用来直接与证书做校验,直接就会失败。(TLS 的做法,也是加 Host,在 TLS 握手第一阶段 ClientHello 的报文中添加)

那有没有办法做呢?当然有,人还是太聪明了。 本地localdns 建立一个 ip 和 域名的对应关系, 服务端采用泛域名的方式。 完美解决这个问题, https也就可以使用ip + host直通访问。 缺陷就是多了一次localdns解析。

举例 *.aaa.bb.com :泛域名证书 sdfsdwesdsdsd3 : 1.1.1.1 https://sdfsdwesdsdsd3.aaa.bb.com/github.com/1.mp4

这种方式就可以正常访问了