将spring boot 工程通过nginx代理为https的一次采坑经历(windows篇)

1 篇文章 0 订阅
1 篇文章 0 订阅
前提:

 项目中,需要调用第三方接口计算某个xxx值,因为该值并不需要对数据有组装拼接或者其他复杂的处理,所以打算让前端直接调用第三方接口,不走后端,但是第三方并没有将其服务代理为https,根据chrome的策略会对前端的http请求进行拦截,所以,我要负责将第三方的服务代理成https,于是就有了接下来的采坑经历,但是其实最后并没有用这个使用openssl自制的证书,也并没有用这个新安装的nginx,因为还涉及跨域问题。

windows:
1. nginx安装

 1. windows下直接到官网下载zip包
在这里插入图片描述
  1). Mainline version 是现在正在开发和维护的版本
  2.) Stable version 是稳定版本
  3.) Legacy version 是相对比较旧的版本
 2. 解压压缩包到指定文件夹
 3. nginx文件夹的路径下运行cmd或者直接运行cmd进入到nginx所在的文件夹。
 4. 输入指令 start nginx
 5. 使用浏览器访问http://localhost或http:localhost:80可以访问到nginx的访问页面说明启动成功。
在这里插入图片描述
 6. 安装openssl,这里要使用spenssl生成证书和密钥。
 7. openssl下载地址
 8. 下载之后直接安装,安装好之后需要配置一下环境变量。
 9. 系统变量中添加OPENSSL_HOME变量,变量值为安装ssl的路径,路径需要精确到bin文件夹比如(E:\Program Files\OpenSSL_Light\OpenSSL-Win64\bin)。
 10. 在系统变量path中添加以下值%OPENSSL_HOME%;
 11. 运行cmd,执行命令openssl version 如果可以正常显示openssl的版本,说明安装成功了。
 12. 生成证书和密钥。
 13. 执行以下命令, openssl req -x509 -nodes -days 36500 -newkey rsa:2048 -keyout nginx.key -out nginx.crt 有效期为100年,密钥文件名称为nginx,证书文件名称也为nginx。接下来会填很多参数,其中比较重要的是 Common Name 应为域名(我对这个一直有着深深的误解,因为是在局域网,所以没有考虑过申请域名这回事,所以觉得既然不需要在外网访问,所以这里起什么都可以,代理之后,直接访问这个域名就可以了,所以在这里耗费了很长一段时间)
 14. 修改nginx的config配置文件。在配置文件的最下方有一个 #HTTPS server 块被注掉了,在这里需要把注释放开。
 15. 其中 ssl_certificate 为证书的路径,ssl_certificate_key为密钥的url,需要注意路径写法,location 后面跟着的需要在访问时的路径中包含, proxy_pass 为我们要代理的真实的url。

server {
        listen       443 ssl;
        server_name  www.cavalry.com;

        ssl_certificate      E:/nginx/ssl/nginx.crt;
        ssl_certificate_key  E:/nginx/ssl/nginx.key;

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

       # ssl_ciphers  HIGH:!aNULL:!MD5;
       # ssl_prefer_server_ciphers  on;
       
      
        location / {
            proxy_pass http://192.168.0.104:8080;
            proxy_set_header        Host $host;
            proxy_set_header        X-Real-IP $remote_addr;
            proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header        X-Forwarded-Proto $scheme;
            proxy_set_header        X-Forwarded-Port $server_port;
            proxy_next_upstream     off;
            proxy_connect_timeout   30;
            proxy_read_timeout      300;
            proxy_send_timeout      300;
        }

    }

 16. 验证结果 注意在这里我们并不能够使用https://www.cavalry.com访问到我们的页面,依然要通过https:localhost/ 或者 https:+ip 来访问。
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值