手头没证书,如何给https做代理?Nginx TCP转发
线上的一个海外充值接口(https)经常因我朝网络问题中断,想借助hk的机器做个https反向代理又没证书。
一开始
一开始想到的办法是借助Nginx的tcp转发进行代理:
编译NGINX时加入 --with-stream选项,
upstream backend {
   server xxxxxx.com:443 ;
}
server {
    listen 443;
    proxy_pass backend;
    proxy_connect_timeout 5s;
    proxy_timeout 15s;
   error_log /data/logs/tcp_xxxxxx.com.log info;
}
服务器通过绑定host,将https://xxxxxx.com的访问请求到中转机再反向到实际的海外服务器确实也ok
不过这里也将面临一个问题:443端口只能被https://xxxxxx.com占用,无法给其他域名的代理提供作用
后来
如果我想https://xxxxxx.com和https://yyyyyy.com都借助这台机器代理呢?
Nginx的stream_ssl_preread_module可以解决这个问题
ngx_stream_ssl_preread_module模块(1.11.5)允许从ClientHello消息中提取信息而不终止SSL / TLS,例如,通过SNI请求的服务器名称或在ALPN中通告的协议。 默认情况下不构建此模块,应使用--with-stream_ssl_preread_module配置参数启用它。
Nginx(1.11+),编译时加入:--with-stream 和 --with-stream_ssl_preread_module 两个选项,
然后配置:
#$ssl_preread_server_name #通过SNI请求的服务器名称
map $ssl_preread_server_name $real_server {
    xxxxxx.com    xxx;
    yyyyyy.com    yyy;
}
upstream xxx{
    server xxxxxx.com:443;
}
upstream yyy{
    server yyyyyy.com:443;
}
server {
    listen 443;
    ssl_preread on;  #允许在预读阶段从ClientHello消息中提取信息
    resolver 8.8.8.8;
    proxy_pass $real_server;
    proxy_connect_timeout 5s;
    proxy_timeout 15s;
    error_log /data/logs/stream_ssl_preread.log info;
}
这样就可以给https://xxxxxx.com 和https://yyyyyy.com两个域名做tcp层的代理了,其他域名如果也绑host过来就会被403掉。
参考:http://nginx.org/en/docs/stream/ngx_stream_ssl_preread_module.html
手头没证书,如何给https做代理?Nginx TCP转发的更多相关文章
- Nginx实现ssl一级、二级域名证书部署并用https访问代理转发服务器
		
1. 规划 域名 解析IP Nginx代理 htpps://www.devcult.com 47.88.10.155 htpps://auto.devcult.com 47.88.10.155 ...
 - windows系统配置Nginx使用SSL证书实现Https反向代理
		
Nginx反向代理服务,可以代理接收请求,并把请求转发到设置好的其他服务器上. 例如,Nginx服务器为 100.101.102.103,A服务为 100.101.102.104 ,通过Nginx配置 ...
 - 用squid做http/https正向代理
		
0.环境准备 VM1(server):nat-192.168.12.128 bridge-192.168.124.128 VM2(client):bridge-192.168.124.129 在VMw ...
 - CA证书扫盲,https讲解。
		
很多关于CA证书的讲解. 1.什么是CA证书. 看过一些博客,写的比较形象具体. ◇ 普通的介绍信 想必大伙儿都听说过介绍信的例子吧?假设 A 公司的张三先生要到 B 公司去拜访,但是 B 公司的所有 ...
 - CA证书扫盲,https讲解
		
很多关于CA证书的讲解. 1.什么是CA证书. 看过一些博客,写的比较形象具体. ◇ 普通的介绍信 想必大伙儿都听说过介绍信的例子吧?假设 A 公司的张三先生要到 B 公司去拜访,但是 B 公司的所有 ...
 - windows:nginx配置http、https反向代理
		
一.下载 Windows 版本的 nginx nnginx下载:http://nginx.org/en/download.html 推荐稳定版本.下载完成后,解压得到 nginx-1.14.0 ,我把 ...
 - 把www.domain.com均衡到本机不同的端口  反向代理 隐藏端口 Nginx做非80端口转发 搭建nginx反向代理用做内网域名转发  location 规则
		
负载均衡-Nginx中文文档 http://www.nginx.cn/doc/example/loadbanlance.html 负载均衡 一个简单的负载均衡的示例,把www.domain.com均衡 ...
 - 端口被占用通过域名的处理 把www.domain.com均衡到本机不同的端口  反向代理 隐藏端口 Nginx做非80端口转发 搭建nginx反向代理用做内网域名转发  location 规则
		
负载均衡-Nginx中文文档 http://www.nginx.cn/doc/example/loadbanlance.html 负载均衡 一个简单的负载均衡的示例,把www.domain.com均衡 ...
 - 使用fiddler4做代理调试手机页面
		
由于一般手机不能改host,手机页面如果涉及到各个域名ip的混合使用,在手机上调试看效果非常麻烦. 使用fiddler4做代理,手机跟电脑连到同一个局域网,手机上网通过电脑做个代理上网,那么一切请求就 ...
 
随机推荐
- SJW-遍历我的账户左侧导航页面(句柄切换)
			
页面信息类似如下: 定位页面元素: import time from selenium import webdriver # import os #A #username = "182007 ...
 - windows go dll 框架
			
乘着还没有添加商业功能之前,先给大家把福利分享了 希望有需要的朋友能够用的上 这个框架是在用windows平台,GO做的http/https服务,调用dll现有的库接口实现特定功能的大框架 //dll ...
 - 一个站点配置多个App.config
			
一个项目一般都只有一个配置文件.web项目中用的是web.config,但项目中有时候需要单独来配置一个文件.比如:app.config,那是否可以呢? 答案是可以的.可以在web.config中指定 ...
 - (4)Python3笔记 之 流程控制
			
一.条件控制 # 语法规则 if 变量(或表达式): 语句块1 elif 变量(或表达式): 语句块2 else: 语句块3 #示例 score = 83 if score > 90: prin ...
 - mysql小脚本
			
常用脚本 1)备份数据库 #!/bin/bash#每周一全量备份数据库 #DB1mysqldump -hip eduyun -u用户 -p密码 >eduyun`date +%Y-%m-%d-%H ...
 - HTML5表单及其验证
			
随笔- 15 文章- 1 评论- 115 HTML5表单及其验证 HTML表单一直都是Web的核心技术之一,有了它我们才能在Web上进行各种各样的应用.HTML5 Forms新增了许多新控件及其A ...
 - cache基础
			
cache是系统中的一块快速SRAM,价格高,但是访问速度快,可以减少CPU到main memory的latency. cache中的术语有: 1) Cache hits,表示可以在cache中,查找 ...
 - CSS背景与边框属性-----box-shadow
			
box-shadow:none | <shadow> [ , <shadow> ]* <shadow> = inset? && <leng ...
 - jQuery样式--css(name|pro|[,val|fn])
			
css(name|pro|[,val|fn]) 概述 访问匹配元素的样式属性 参数 name 要访问的属性名称 name 一个或多个CSS属性组成的一个数组 properties 要设置为样式属 ...
 - 线程&进程
			
扯淡的yuan 并发&并行 并发:是指系统具有处理多个任务(动作)的能力. 并行:是指系统具有 同时 处理多个任务(动作)的能力. 同步&异步 同步:当进程执行到一个IO(等待外部数据 ...