如何利用Nginx反向代理,实现HTTPS远程调试本地代码?

2022-12-27 0 382

大背景

计划

只不过 springboot 这类就全力支持 HTTPS(howto-configure-ssl),但这须要改工程项目标识符不太典雅,只好就想间接用nginx逆向全权到邻近地区服务工程项目,这种在nginx微观做 HTTPS 就不须要改标识符了,只需修正 host 将后端OWL搜索引擎对准nginx服务工程项目的 IP 方可,所以能适用作于其他的 HTTP 服务工程项目合作开发增容。

如何利用Nginx反向代理,实现HTTPS远程调试本地代码?

核发合格证书

具体来说要聚合两套合格证书用作 nginx 的 ssl 实用性,间接采用openssl辅助工具聚合两套根合格证书和相关联的服务工程项目合格证书。

1. 根合格证书聚合

# 聚合两个RSA公钥

openssl genrsa -out root.key 2048

# 透过公钥聚合两个根合格证书

openssl req -sha256 -new -x509 -days 365 -key root.key -out root.crt \

-subj “/C=CN/ST=GD/L=SZ/O=lee/OU=work/CN=fakerRoot”

2.服务工程项目器合格证书聚合

# 聚合两个RSA公钥

openssl genrsa -out server.key 2048

# 聚合两个带SAN扩展的合格证书签名请求文件

openssl req -new \

-sha256 \

-key server.key \

-subj “/C=CN/ST=GD/L=SZ/O=lee/OU=work/CN=xxx.com” \

-reqexts SAN \

-config <(cat /etc/pki/tls/openssl.cnf \

<(printf “[SAN]\nsubjectAltName=DNS:*.xxx.com,DNS:*.test.xxx.com”)) \

-out server.csr

# 采用之前聚合的根合格证书做核发

openssl ca -in server.csr \

-md sha256 \

-keyfile root.key \

-cert root.crt \

-extensions SAN \

-config <(cat /etc/pki/tls/openssl.cnf \

<(printf “[SAN]\nsubjectAltName=DNS:xxx.com,DNS:*.test.xxx.com”)) \

-out server.crt

这种就得到了三个关键文件:

root.crt:根合格证书

server.key:服务工程项目合格证书公钥

server.crt:服务工程项目合格证书

注:聚合的服务工程项目器合格证书搜索引擎要全力支持OWL访问的搜索引擎,否则浏览器会提示合格证书不安全。nginx 实用性

为了方便,间接采用docker启动了两个 nginx 容器进行访问,并将合格证书和实用性文件挂载到相关联的目录:

nginx.conf

server {

listen 443 ssl;

server_name _;

ssl_certificate “/usr/local/nginx/ssl/server.pem”;

ssl_certificate_key “/usr/local/nginx/ssl/server.key”;

location / {

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 Host $http_host;

proxy_set_header X-NginX-Proxy true;

proxy_set_header Upgrade $http_upgrade;

proxy_set_header Connection “upgrade”;

proxy_pass http://127.0.0.1:3000;

proxy_redirect off;

proxy_http_version 1.1;

透过实用性ssl_certificate和ssl_certificate_key来指定服务工程项目器的合格证书和公钥,proxy_pa

启动

docker run -d –name https -p 443:443 -v ~/forword/ssl:/usr/local/nginx/ssl -v ~/forword/config/nginx.conf:/etc/nginx/conf.d/default.conf nginx

将 nginx 实用性和合格证书相关文件挂载至相关联的目录,并暴露 443 端口,这种服务工程项目启动后方可透过 https 访问到邻近地区合作开发环境了。

安装根合格证书

由于服务工程项目合格证书是自己核发的,并不会被浏览器所信任,所以须要将根合格证书安装至操作系统中。

1. 打开 chrome 浏览器->设置->高级->管理合格证书

如何利用Nginx反向代理,实现HTTPS远程调试本地代码?

2. 受信任的根合格证书颁发机构->导入

如何利用Nginx反向代理,实现HTTPS远程调试本地代码?

3.选择之前聚合的根合格证书root.crt导入方可

修正 host

在须要增容时,只须要将邻近地区服务工程项目启动,再将 host 中将要测试的搜索引擎解析到nginx服务工程项目器的 IP,方可将前端请求转发到合作开发环境上,透过浏览器地址栏的小锁图标能看到合格证书,已验证服务工程项目已经部署成功。

如何利用Nginx反向代理,实现HTTPS远程调试本地代码?

如何利用Nginx反向代理,实现HTTPS远程调试本地代码?

后记

本文中只不过已经提到了两种解决计划了,只不过还有其他的解决计划,例如采用fidder这种中间人攻击的方式来同时实现,这里就不做多叙了。

作者:mokeyWie segmentfault.com/a/1190000021453331

除处理!

最近有很多人问,有没有读者交流群!加入方式很简单,公众号Java精选加群

”,方可入群!

(微信小程序):3000+道面试题,包含Java基础、并发、JVM、线程、MQ系列、Redis、Spring系列、Elasticsearch、Docker、K8s、Flink、Spark、架构设计等,在线随时刷题!

特别推荐:专注分享最前沿的技术与资讯,为弯道超车做好准备及各种开源工程项目与高效率软件的公众号,「大咖笔记」,专注挖掘好东西,非常值得大家关注。点击下方公众号卡片关注

文章有帮助的话,点在看,转发吧!

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务