$ sudo /usr/local/openresty/nginx/sbin/nginx -V 2>&1 | sed 's/ --/\n--/g' | egrep --color '.*path.*|$'
nginx version: openresty/1.19.9.1
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC)
built with OpenSSL 1.1.1l 24 Aug 2021
TLS SNI support enabled
configure arguments:
--prefix=/usr/local/openresty/nginx
--with-debug
......
--with-stream
--with-stream_ssl_module
--with-stream_ssl_preread_module
需要注意的是滤港,有的同學(xué)問到我們?cè)趆ttps 請(qǐng)求的URL中已經(jīng)有了需要請(qǐng)求的服務(wù)器名在請(qǐng)求的Header中也有設(shè)置谷浅,為什么這里還需要設(shè)置涂滴, 這里需要理解2個(gè)點(diǎn):
TLS協(xié)議是在HTTPS層下面的是沒辦法獲取到https層面的相關(guān)信息的胆建。
我們看看client和server建立Https連接的過程: 先建立tcp連接 -->經(jīng)過TLS握手-->實(shí)現(xiàn)https通信-->進(jìn)而發(fā)送HTTP請(qǐng)求 街州, 從請(qǐng)求過程來看在TLS握手階段, server端'也沒有辦法獲取七層HTTP報(bào)文的信息
對(duì)于Nginx兼丰,如果客戶端在ssl握手階段未攜帶server_name Nginx就會(huì)去找默認(rèn)server,然后使用默認(rèn)server的ssl證書來響應(yīng)唆缴, 因?yàn)槲覀兪褂玫姆河蛎C書鳍征,默認(rèn)server的ssl證書也是可以匹配上的。
服務(wù)端通過SNI(Server Name Indication)來區(qū)別虛擬主面徽。
在某些場(chǎng)景中艳丛,需要獲取ClientHello中的SNI字段來作為一個(gè)必要條件, 比如用NGINX stream對(duì)HTTPS流量做4層代理時(shí),客戶端ClientHello中沒有攜帶SNI趟紊,則會(huì)造成一個(gè)通過代理握手失敗的局面氮双。
在利用NGINX stream做正向代理時(shí),NGXIN服務(wù)器需要獲取客戶端想要訪問的目的域名霎匈,利ngx_stream_ssl_preread_module模塊在不解密的情況下拿到ClientHello報(bào)文中SNI才能實(shí)現(xiàn)代理的正常功能戴差。
參考
了解Https SNI 以及 Win XP 對(duì)https支持情況測(cè)試
https://mp.weixin.qq.com/s/ff4-FvgX1lD0edWRKde_Fw
直接用IP訪問知乎,我發(fā)現(xiàn)了一個(gè)秘密
https://mp.weixin.qq.com/s/qxjiix7z9stauONxWUGgrQ
都用HTTPS了唧躲,還能被查出瀏覽記錄造挽?
https://mp.weixin.qq.com/s/TJDCXRvibNIPeKck6e1q9w
CentOS 7安裝SNI Proxy對(duì)HTTPS站點(diǎn)進(jìn)行反向代理
https://mp.weixin.qq.com/s/Gk5_oklEwrY-BG6j-pBYug
處理 一個(gè)SNI 引發(fā)“血案”的全過程
https://mp.weixin.qq.com/s/GY9ZYKEoECfM6YpfvV0duw
Apisix 遷移之TLS的問題
https://mp.weixin.qq.com/s/ln9lYYAKAaBsH-uI-PuDSg
HTTPS請(qǐng)求出現(xiàn)received fatal alert: internal_error的問題分析排查
https://blog.csdn.net/xiao__jia__jia/article/details/123752327
HTTPS握手失敗 javax.net.ssl.SSLException: Received fatal alert: internal_error
https://www.codetd.com/article/9814188
APISIX網(wǎng)關(guān)在雪球生產(chǎn)實(shí)踐
https://blog.csdn.net/singgel/article/details/122701839
SNIproxy
https://www.kancloud.cn/panxin20/notes/2648800
SNI Proxy:歷史中的名字基于代理方案
https://blog.csdn.net/gitblog_00924/article/details/141632410
說說SNI Proxy
http://blog.ttionya.com/article-1851.html
CentOS下安裝 SNIProxy 實(shí)現(xiàn) hosts 代理
https://coderschool.cn/2284.html
sniproxy 服務(wù)器是什么?
https://worktile.com/kb/ask/1363661.html