手头没证书,如何给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做代理,手机跟电脑连到同一个局域网,手机上网通过电脑做个代理上网,那么一切请求就 ...
随机推荐
- [xdoj] 1301&1302 数字计数 数字计数的复仇
1.首先需要掌握二进制数的一种特性,00=0,01=1,10=2,11=3.每一个二进制的值代表他前面的二进数的个数,比如11=3,他的前面就有三个二进制的数字,不过在本题中,题目数据是1-n,故把0 ...
- flask orm
#查询 #查第一行 session.query(User.id,User.userName,User.password).first() #查所有行 sessi ...
- QString和char*互转
1. QString转为char * // QString转QByteArray QByteArray sr = strQ.toLocal8Bit(); int len = sr.length(); ...
- IE浏览器解决无法识别js中getElementsByClassName问题
关于ie浏览器无法识别js中getElementsByClassName问题,现通过以下方法,引用如下js /** *打印js对象详细信息 */ function alertObj(obj) { va ...
- sql2008升级到r2提示:检查当前是否正确配置了报表服务器、数据库服务器是否正在运行以及您是否有权访问
sql2008升级到r2提示:检查当前是否正确配置了报表服务器.数据库服务器是否正在运行以及您是否有权访问 解决方法:把服务开启ok
- Oracle10g 连接 sqlserver hsodbc dblink 方式 非透明网关
Oracle10g 连接 sqlserver hsodbc dblink 方式 非透明网关 那个上传图片太麻烦了,发布到百度文库了 http://wenku.baidu.com/view/b38ae8 ...
- UML之状态机图
状态机图 基本概念: 状态机图,UML 1.x规范中称状态图,是一个展示状态机的图. 状态机图基本上就是一个状态机中元素的投影,这也就意味着状态机图包括状态机的所有特征.状态机图显示了一个对象如何根据 ...
- v1版本
<?php use yii\helpers\Html; use yii\helpers\Url; use yii\widgets\DetailView; use yii\grid\GridVie ...
- hdu5422 最大表示法+KMP
#include <iostream> #include <algorithm> #include <string.h> #include <cstdio&g ...
- Operation(Swift)
介绍: NSOperation需要配合NSOperationQueue来实现多线程.因为默认情况下,NSOperation单独使用时系统同步执行操作,并没有开辟新线程的能力,只有配合NSOperati ...