升级 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 来实现一个代理服务器,当然这次就不展开了,就写这么多吧。

相关实践学习
基于函数计算快速搭建Hexo博客系统
本场景介绍如何使用阿里云函数计算服务命令行工具快速搭建一个Hexo博客。
目录
相关文章
|
1月前
|
缓存 安全 网络协议
一起深入了解http和https的区别
HTTP适合于非敏感信息的传输,而HTTPS则是在要求安全性、隐私保护及信任机制的现代互联网环境中不可或缺的标准配置。随着网络安全意识的提高和技术的发展,越来越多的网站和服务都转向使用HTTPS,力求在提供便捷服务的同时保障用户数据的安全。HTTPS将成为未来的基本选择。
41 0
一起深入了解http和https的区别
|
1月前
|
安全 网络协议 算法
http和https的区别有哪些
http和https的区别有哪些
|
4天前
|
安全 Go
解决https页面加载http资源报错
请注意,混合内容可能导致安全性问题,因此在使用上述方法时要小心。最好的方式是尽量减少或完全消除混合内容,以确保页面的安全性。
5 0
|
9天前
|
网络协议 网络安全 数据安全/隐私保护
http和https的区别!
http和https的区别!
|
12天前
|
网络协议 安全 API
Android网络和数据交互: 什么是HTTP和HTTPS?在Android中如何进行网络请求?
HTTP和HTTPS是网络数据传输协议,HTTP基于TCP/IP,简单快速,HTTPS则是加密的HTTP,确保数据安全。在Android中,过去常用HttpURLConnection和HttpClient,但HttpClient自Android 6.0起被移除。现在推荐使用支持TLS、流式上传下载、超时配置等特性的HttpsURLConnection进行网络请求。
10 0
|
15天前
|
缓存 安全 网络协议
【面试必备】HTTP和HTTPS是什么?有什么差异?
HTTP(超文本传输协议)和HTTPS(超文本传输安全协议)是用于在互联网上传输数据的协议。它们都是应用层协议,建立在TCP/IP协议栈之上,用于客户端(如浏览器)和服务器之间的通信。
22 2
|
19天前
|
应用服务中间件 nginx
nginx进行反向代理的配置
在Nginx中设置反向代理的步骤:编辑`/etc/nginx/nginx.conf`,在http段加入配置,创建一个监听80端口、服务器名为example.com的虚拟主机。通过`location /`将请求代理到本地3000端口,并设置代理头。保存配置后,使用`sudo nginx -s reload`重载服务。完成配置,通过example.com访问代理服务器。
25 0
|
21天前
|
应用服务中间件 网络安全 nginx
nginx配置https访问
nginx配置https访问
35 0
|
30天前
|
应用服务中间件 nginx
nginx配置https和直接访问静态文件的方式
nginx配置https和直接访问静态文件的方式
28 3
|
1月前
|
前端开发 应用服务中间件 网络安全
http转为https,ssl证书安装及nginx配置
http转为https,ssl证书安装及nginx配置
49 1