nginx将http请求代理为https请求

nginx将http请求代理为https请求,第1张

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

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

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

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

因时间紧,优先考虑代理方案。常用的代理服务手段nginx等,优先选择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即可

网址直接提供给Gworg实现HTTPS协议。

解释原因:

确定好需要HTTPS协议网站地址。

让Gworg提供信任数字证书。

配置到服务器或者让Gworg进行接入就可以实现HTTPS。

解决办法:将网址直接给Gworg升级HTTPS协议。

注意:只有网站负责人或者域名管理者才可以申请。

1、建立httpd服务,要求:

(1) 提供两个基于名称的虚拟主机:

www1.stuX.com ,页面文件目录为/web/vhosts/www1;错误日志为/var/log/httpd/www1/error_log,访问日志为/var/log/httpd/www1/access_log;

www2.stuX.com ,页面文件目录为/web/vhosts/www2;错误日志为/var/log/httpd/www2/error_log,访问日志为/var/log/httpd/www2/access_log;

(2) 通过 www1.stuX.com/server-status 输出其状态信息,且要求只允许提供账号的用户访问;

(3) www1不允许192.168.0.88主机访问;

2、为上面的第2个虚拟主机提供https服务,使得用户可以通过https安全的访问此web站点;

(1) 要求使用证书认证,证书中要求使用国家(CN),州(Beijing),城市(Beijing),组织为(MageEdu);

(2) 设置部门为Ops, 主机名为 www2.stuX.com ;

3、为https访问配置强制跳转,访问 http://www2.stuX.com 会跳转到 https://www2.stuX.com 上面去。

在进行配置前,首先安装httpd服务及mod_ssl:

首先创建页面文件目录及日志文件目录:

随后编辑配置配置文件:

之后配置用户认证文件:

使用httpd -t检查配置,如无报错后启动服务:

测试认证访问:

我这边用windows测试,本地Ip为192.168.0.38,修改保存C:\Windows\System32\drivers\etc\hosts文件:

然后测试访问:

查看相应的日志文件:

相关日志log均能正常记录访问。

首先创建CA服务器,用于签发证书:

随后生成签发服务器证书:

之后编辑/etc/httpd/conf.d/ssl.conf文件:

编辑/etc/httpd/conf.d/vhost.conf文件:

重启httpd服务,后测试访问:

此时访问 http://www2.stuX.com 页面,不会跳转到https页面访问:

首先确认配置文件是否加载了mod_rewrite,httpd-2.4 module配置文件在/etc/httpd/conf.modules.d/00-base.conf中:

随后编辑www2的虚拟主机配置:

保存后重启httpd服务,访问相应的页面测试:

此时访问 www2.stuX.com 的其他路径不会跳转到https访问页面,如index.html。

Rewrite的模块使用比较复杂,此处我也是刚接触有兴趣的同学可以参考下面的链接进行学习:

配置https服务: https://blog.csdn.net/wlzx120/article/details/52597338

配置https强制跳转: https://www.centos.bz/2018/01/apache-%E5%BC%BA%E5%88%B6-http-%E5%85%A8%E9%83%A8%E8%B7%B3%E8%BD%AC%E5%88%B0-https/

Rewrite模块: http://httpd.apache.org/docs/2.4/mod/mod_rewrite.html

Rewrite模块中文手册: http://man.chinaunix.net/newsoft/Apache2.2_chinese_manual/mod/mod_rewrite.html#rewriterule

RewriteRule和RewriteCond规则参数的详细介绍: https://blog.csdn.net/lijunwyf/article/details/54948463


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/417586.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-24
下一篇2023-05-24

发表评论

登录后才能评论

评论列表(0条)

    保存