升级 HTTP 至 HTTPS:使用 Nginx 反向代理

简介: 升级 HTTP 至 HTTPS:使用 Nginx 反向代理

序言



不论是 Google 还是苹果公司,一直都在大力推动 HTTPS 以代替原有的 HTTP 协议,同时不久前据悉美国最大的成人网站也全面的将通信协议升级成了 HTTPS,不可否认的是 HTTPS 将为我们带来一个更加安全的网络环境,而作为开发者也应该直面技术发展的浪潮,毕竟顺风而行,才能飞得更远。


对于许多已经成型并在使用中的后台程序来说,将 HTTP 升级为 HTTPS 似乎是一件很麻烦的事情(说不定你要升级的程序是历史遗留下来的,而修改这种程序对所有程序员来说都是一件很不乐意的事情),所以这里介绍另一种方式来达到目的——即不修改原有后台程序,而使用 Nginx 反向代理服务器的方式。


Nginx



Nginx 本身就是一个强大的服务器,其使用广泛、配置简单,可实现负载均衡、支持高并发、及反向代理等等功能。


示例



环境的搭建不再赘述。


1、我们先准备一个 http 服务器:

node.js 的第一个 hello world , 简单吧。


2、准备 https 相关证书文件:


商用的证书需要花钱向权威的第三方机构购买,这里演示就用 openssl 自签名生成好了。( openssl 会跟随 node 的环境一起搭建,无需另外下载配置)


按下图所示步骤进行:

mykey.pem 文件和 mycert.pem 文件将会后续使用。


3、配置 Nginx 的 https 反向代理:



上图的注释已经很详细了,我们重点关注下图中红色圈内的部分,第一个红色圈内指定我们原有的后台服务器地址,第二个红色圈内配置 https 协议的证书,也就是第二步中通过 openssl 生成的两个文件,443 端口号不要改变,另外这里设置了访问此 nginx 服务器的域名(这里域名仅仅是测试用,浏览器中直接访问会当成公网域名,所以为了本地测试生效还需要修改本地 host DNS 文件,就是找到本地的 host 文件,在最后加上 127.0.0.1 www.rife-nginx.com 保存,这样浏览器就会将此域名解析到我们本地),第三个红色圈与第一个红色圈对应,设置代理的路径。


4、测试:


首先启动第 1 步中准备的 http 服务器,(然后如第 3 步中所述修改本地 host 文件),接着通过以下命令启动 nginx 服务器:


最后通过浏览器访问 www.rife-nginx.com 域名,这里会提示证书不安全,因为是我们自己生成的,没有通过第三方权威机构认证,点击继续访问即可看到 hello world 展现于我们眼前。


结束语



本文通过代理服务器的方式变向实现了 https 协议的使用,nginx 非常好用且配置简单,值得尝试,而除了使用 nginx 作为代理服务器外,我们当然可以自己用 node.js 来实现一个代理服务器,当然这次就不展开了,就写这么多吧。

目录
相关文章
|
7月前
|
人工智能 Java API
MCP协议重大升级,Spring AI Alibaba联合Higress发布业界首个Streamable HTTP实现方案
本文由Spring AI Alibaba Contributor刘军、张宇撰写,探讨MCP官方引入的全新Streamable HTTP传输层对原有HTTP+SSE机制的重大改进。文章解析Streamable HTTP的设计思想与技术细节,并介绍Spring AI Alibaba开源框架提供的Java实现,包含无状态服务器模式、流式进度反馈模式等多种场景的应用示例。同时,文章还展示了Spring AI Alibaba + Higress的完整可运行示例,分析当前实现限制及未来优化方向,为开发者提供参考。
|
5月前
|
安全 应用服务中间件 Linux
Debian操作系统如何安装Nginx并开启HTTP2
本指南介绍了在Linux系统中通过源码编译安装Nginx的完整流程。首先更新软件包列表并安装必要的编译依赖,接着下载指定版本的Nginx源码包(如1.24.0),检查文件完整性后解压。随后通过配置脚本指定安装路径与模块(如HTTP SSL模块),执行编译和安装命令。最后创建软链接以便全局调用,并提供启动、停止及重载Nginx的命令,同时提醒注意安全组设置以确保正常访问。
|
8月前
|
数据可视化 关系型数据库 MySQL
ELK实现nginx、mysql、http的日志可视化实验
通过本文的步骤,你可以成功配置ELK(Elasticsearch, Logstash, Kibana)来实现nginx、mysql和http日志的可视化。通过Kibana,你可以直观地查看和分析日志数据,从而更好地监控和管理系统。希望这些步骤能帮助你在实际项目中有效地利用ELK来处理日志数据。
662 90
|
6月前
|
JSON 安全 网络协议
HTTP/HTTPS协议(请求响应模型、状态码)
本文简要介绍了HTTP与HTTPS协议的基础知识。HTTP是一种无状态的超文本传输协议,基于TCP/IP,常用80端口,通过请求-响应模型实现客户端与服务器间的通信;HTTPS为HTTP的安全版本,基于SSL/TLS加密技术,使用443端口,确保数据传输的安全性。文中还详细描述了HTTP请求方法(如GET、POST)、请求与响应头字段、状态码分类及意义,并对比了两者在请求-响应模型中的安全性差异。
680 20
|
6月前
|
安全 网络协议 算法
HTTP/HTTPS与SOCKS5协议在隧道代理中的兼容性设计解析
本文系统探讨了构建企业级双协议隧道代理系统的挑战与实现。首先对比HTTP/HTTPS和SOCKS5协议特性,分析其在工作模型、连接管理和加密方式上的差异。接着提出兼容性架构设计,包括双协议接入层与统一隧道内核,通过协议识别模块和分层设计实现高效转换。关键技术部分深入解析协议转换引擎、连接管理策略及加密传输方案,并从性能优化、安全增强到典型应用场景全面展开。最后指出未来发展趋势将更高效、安全与智能。
246 1
|
7月前
|
安全 网络安全 数据安全/隐私保护
HTTP 与 HTTPS 协议及 SSL 证书解析-http和https到底有什么区别?-优雅草卓伊凡
HTTP 与 HTTPS 协议及 SSL 证书解析-http和https到底有什么区别?-优雅草卓伊凡
410 3
|
9月前
|
网络协议 安全 网络安全
HTTP与HTTPS协议入门
HTTP协议是互联网的基石,HTTPS则是其安全版本。HTTP基于TCP/IP协议,属于应用层协议,不涉及数据包传输细节,主要规定客户端与服务器的通信格式,默认端口为80。
356 25
HTTP与HTTPS协议入门
|
10月前
|
缓存 负载均衡 应用服务中间件
Nginx七层(应用层)反向代理:HTTP反向代理proxy_pass篇
通过使用Nginx的反向代理功能,可以有效地提高Web应用的性能、安全性和可扩展性。配置过程中需要注意不同场景下的具体需求,如负载均衡、SSL终止和缓存策略等。正确配置和优化Nginx反向代理可以显著提升系统的整体表现。
1646 20
|
10月前
|
安全 搜索推荐 网络安全
HTTPS与HTTP:区别及安全性对比
HTTP和HTTPS是现代网络通信中的两种重要协议。HTTP为明文传输,简单但不安全;HTTPS基于HTTP并通过SSL/TLS加密,确保数据安全性和完整性,防止劫持和篡改。HTTPS还提供身份验证,保护用户隐私并防止中间人攻击。尽管HTTPS有额外的性能开销和配置成本,但在涉及敏感信息的场景中,如在线支付和用户登录,其安全性优势至关重要。搜索引擎也更青睐HTTPS网站,有助于提升SEO排名。综上,HTTPS已成为大多数网站的必然选择,以保障用户数据安全和合规性。
804 1
|
11月前
|
应用服务中间件 Linux 网络安全
nginx安装部署ssl证书,同时支持http与https方式访问
为了使HTTP服务支持HTTPS访问,需生成并安装SSL证书,并确保Nginx支持SSL模块。首先,在`/usr/local/nginx`目录下生成RSA密钥、证书申请文件及自签名证书。接着,确认Nginx已安装SSL模块,若未安装则重新编译Nginx加入该模块。最后,编辑`nginx.conf`配置文件,启用并配置HTTPS服务器部分,指定证书路径和监听端口(如20000),保存后重启Nginx完成部署。
3648 8