nginx将http请求代理为https请求

1 背景

恰巧遇到上传文件时,后端服务器生成servlet http请求,提供给web端,使其能直接从浏览器通过http请求将流发送到后端服务器,不需进过web服务端,而web端的请求都为https,涉及https转http请求问题【问题描述还有一点】

2 技术选型

问题简而言之就是需要将后端的http请求变成https请求,这里有两种路子去处理:

1) 本身后端反馈给前端的是http的servlet,是否可以将servlet生成https的请求;

2) 能否通过其他代理手段,将后端http请求转换一下。

因时间紧,优先考虑代理方案。常用的代理服务手段nginx等,优先选择nginx,轻量与简单。

3 nginx代理

目标如下:

【客户端 --(https)-->nginx--(http)-->servlet容器】

选择nginx-1.20.0版本

代理https需要配置SSL,以如下命令生成SSL配置,加入到nginx配置中

1)生成密钥,使用openssl生成密钥private.key,长度为1024

openssl genrsa -out private.key 1024

2)使用密钥生成证书server.pem

openssl req -new -x509 -key private.key -out server.pem -days 365

证书信息可以随便填或者留空,只有Common Name要根据你的域名填写,即填写nginx所在服务器的IP或域名。

完整nginx.conf配置

启动nginx即可

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容