Nginx: windows下nginx代理实现本地https请求转http

Nginx: windows下nginx代理实现本地https请求转http

背景需求:

  • https网站下要求ajax请求(iframe、img等资源)都要是https域名,http不能用,或被浏览器拦截(可以关闭浏览器的安全策略拦截)
  • 小程序、公众号等需要https域名接口或资源,调用本地http资源失败(可以打开调试模式绕过)

解决原理

本地(服务器)代理监听https端口,代理转发请求http接口或资源。但是ip地址是不能创建安全证书的,所以需要先有一个域名,指向这个内网ip地址。最终内网下,访问域名即可请求到本地资源

解决步骤

1、下载安装nginx(先不要启动)

2、创建nginx证书

  • 第一种 使用腾讯云、阿里云控制台(最简单),本文举例腾讯云

    • 搜索:ssl证书,进入控制台

      在这里插入图片描述

    • 选择免费证书

      在这里插入图片描述

    • 填写域名和接收邮箱

      在这里插入图片描述

    • 等待邮件接收即可下载使用

  • 第二种 使用openssl创建证书
    参考文档:https://blog.51cto.com/lw112190/6265264

3、修改nginx配置项

新建文件夹pem,将刚才申请的证书下载存放在里面

打开并编辑:nginx.conf

在这里插入图片描述
在这里插入图片描述
本文是监听https服务,若http端口不冲突可以不改,或者注释掉http部分,只打开https这里

server {
       listen       4433 ssl;
       server_name  localhost;

       ssl_certificate      pem/client.noleft.cn_bundle.pem;
       ssl_certificate_key  pem/client.noleft.cn.key;

       ssl_session_cache    shared:SSL:1m;
       ssl_session_timeout  5m;

       ssl_ciphers  HIGH:!aNULL:!MD5;
       ssl_prefer_server_ciphers  on;

    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }

        location / {
            proxy_pass http://172.16.25.110:5001/;
            proxy_set_header Host $http_host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
    }

证书如果是我一样存放方式,不要在ssl_certificate地址的地方前面加上 / 否则会从D盘开始找

4、配置homes

相当于 域名解析。只是解析放到了本地而已。只是本电脑生效

win + R 输入:C:\Windows\system32\drivers\etc

在这里插入图片描述

或者输入文件夹地址回车:
在这里插入图片描述

根据实际情况,添加ip和域名的映射关系

在这里插入图片描述

5、启动nginx

双击启动即可,会闪一次黑框就是启动正常


其他:

1、 重启nginx
在这里插入图片描述

nginx文件夹内,右击菜单选择

nginx -s reload

如果报错找不到nginx,则执行:

.\nginx -s reload
  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在Windows实现NginxHTTPS代理,需要按照以下步骤进行设置: 1. 下载和安装Nginx:在Nginx官方网站上下载适合WindowsNginx二进制文件,并将其解压到你想要安装的目录中。 2. 生成SSL证书:在Windows上,你可以使用OpenSSL来生成SSL证书。首先,确保你已经安装了OpenSSL工具。然后,在命令行中运行以下命令生成私钥和自签名证书: openssl genrsa -des3 -out private.key 2048 openssl req -new -key private.key -out csr.pem openssl x509 -req -days 365 -in csr.pem -signkey private.key -out server.crt 注意:在生成证书时,输入的Common Name (e.g. server FQDN or YOUR name)应该是你的服务器的主机名或域名。 3. 配置Nginx:打开Nginx的配置文件(通常是nginx.conf),找到默认的HTTP服务器块,并添加以下配置来进行HTTPS代理设置: server { listen 443 ssl; server_name your_domain.com; ssl_certificate path_to_your_certificate/server.crt; ssl_certificate_key path_to_your_private_key/private.key; location / { proxy_pass https://your_target_server; } } 替换上述配置中的`your_domain.com`为你的域名,`path_to_your_certificate`为SSL证书的路径,`path_to_your_private_key`为私钥的路径,以及`your_target_server`为你想要代理的目标服务器的URL。 4. 启动Nginx:在命令行中进入Nginx的安装目录,并运行以下命令以启动Nginx服务器: nginx.exe 现在,你已经在Windows上成功配置了NginxHTTPS代理。你可以访问你的域名,Nginx将接收发往443端口的HTTPS请求,并将其代理到目标服务器。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值