百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

给你的Node.js项目部署HTTPS

off999 2025-03-04 13:36 9 浏览 0 评论

最近上线了一个面向前端领域技术干货的邮件订阅服务,全站启用了HTTPS,于是有了这篇文章来分享一下我是如何部署HTTPS的。

什么是HTTPS

简单的来讲HTTPS是HTTP的安全加强版,HTTPS以加密数据的方式,可以防止数据在传输过程中杯窃取,也可以在正个信息传递的过程中维护数据的完整性。从HTTPS的英文全写来看 Hyper Text Transfer Protocol over Secure Socket Layer 我们就可以知道,它是在HTTP的基础上增加了一把小锁。

关于HTTPS的论述,网路上有非常多的资料,建议大家去搜索阅读一下。(这里就不废话了,直接看如何给你的网站部署HTTPS吧)

验证以及如何申请证书

你可以在
https://www.sslforfree.com/ 中来申请免费的SSL证书(三个月免费,在到期之前sslforfree会发邮件通知你来更换证书)。

你只需要在这里输入你的域名,然后将验证文件上传到你的静态服务器中,sslforfree 验证通过之后,就会提供三个文件让你下载,放心的打包下载这三个文件吧(不要忘记了输入email和password,让 sslforfree 来通知你更换证书)。

使用HTTPS来开启网站服务器

接下来你需要在你的Node.js代码中使用https模块来替换掉原http模块,并且将 sslforfree 提供给你的私钥与证书,加载进去。

var https = require('https');

var fs = require('fs');

var options = {

key: fs.readFileSync(path.resolve(__dirname,'ssl/privatekey.pem')),

cert: fs.readFileSync(path.resolve(__dirname,'ssl/certificate.crt'))

};

https.createServer(options,app.callback()).listen(8082);

配置Nginx

最后这一步,主要是配置一下nginx代理。因为你的Node.js服务并不是直接暴露在公网的,而是以本地的方式跑在内网中,你需要Nginx帮你转发到具体的Node.js 服务上。

首先你需要做的是将证书与私钥上传到你的服务器上(至于什么方式都可以,Git FTP),位置可以随便放(为了统一记住,建议你可以跟你的nginx配置文件放在一起)。

接着考虑到现在的用户很少会把域名打全,所以访问HTTP时需要将HTTP转发到HTTPS。

server {

listen 80;

server_name example.com www.example.com;

return 301 https://www.example.com$request_uri;

}

当然你启动了SSL后你就需要使用443端口了,所以你还需要配置一个server来转发到内网的Node.js 服务上。

server {

listen 443;

server_name example.com www.example.com;

ssl on;

ssl_certificate /var/nginx/certs/certificate.crt;

ssl_certificate_key /var/nginx/certs/privatekey.pem;

location / {

proxy_pass https://127.0.0.1:3000

}

}

如何在浏览器上开启绿色的锁

当你配置好上述两步的时候用浏览器访问你的网站,你会发现并没有出现绿色的小锁。这是因为,你的资源没有启用HTTPS。资源,包括了图片,文件,不包括a链接。

最后

《课多周刊》邮件订阅服务

《课多周刊》内容起于前端而非止于前端,精选一周前端领域的技术干货,每周一发送,完全免费。

访问地址:https://w3crange.com

早读课提醒

言归正传我们在微信群中推出了《早读课》,每日分享一篇我们认真精选的文章(不限于前端开发类),其目的是帮助开发者来学习有价值的东西。想加微信群的朋友,直接添加我的微信号:icepy_1988,审核之后会邀请你入群。想加QQ群的朋友,可以直接添加:418898836,答对问题即可入群。

关注我们

更多精彩内容可关注微信公众号:搜索 fed-talk ,来关注我们吧,也欢迎你将它分享给自己的朋友。

相关推荐

Python自动化脚本应用与示例(python自动化脚本教程)

Python是编写自动化脚本的绝佳选择,因其语法简洁、库丰富且跨平台兼容性强。以下是Python自动化脚本的常见应用场景及示例,帮助你快速上手:一、常见自动化场景文件与目录操作O批量重命名文件...

如何使用Python实现一个APP(如何用python做一个程序)

要使用Python实现一个APP,你可以选择使用一些流行的移动应用开发框架,如Kivy、PyQt或Tkinter。这里以Kivy为例,它是一个跨平台的Python框架,可以用于创建漂亮的图形用户界面(...

免费定时运行Python程序并存储输出文档的服务推荐

免费定时运行Python程序并存储输出文档的服务推荐以下是几种可以免费定时运行Python程序并存储输出结果的云服务方案:1.PythonAnywhere特点:提供免费的Python托管环境支持定时...

【Python程序开发系列】如何让python脚本一直在后台保持运行

这是我的第385篇原创文章。一、引言让Python脚本在后台持续运行,有几种常见的方式,具体方式可以根据你的系统环境和需求选择。二、Linux或macOS系统2.1使用nohup命令no...

运行和执行Python程序(运行python的程序)

一、Python是一种解释型的脚本编程语言,这样的编程语言一般支持两种代码运行方式:交互式编程在命令行窗口中直接输入代码,按下回车键就可以运行代码,并立即看到输出结果;执行完一行代码,你还可以继续...

Python 初学者指南:计算程序的运行时长

在编写Python程序时,了解程序的运行时长是一项很有用的技能。这不仅能帮助你评估代码的效率,还能在优化程序性能时提供关键的数据支持。对于初学者来说,计算程序运行时长其实并不复杂,接下来就让我们看...

pyest+appium实现APP自动化测试,思路全总结在这里

每天进步一点点,关注我们哦,每天分享测试技术文章本文章出自【码同学软件测试】码同学公众号:自动化软件测试码同学抖音号:小码哥聊软件测试01appium环境搭建安装nodejshttp://nodej...

血脉觉醒后,编程小白我是如何通过Deepseek和Trae轻松开发软件的

以下就是作为一个编程小白的我,是如何一步步开发软件的保姆级教程,请点赞收藏:第一步:打开#deepseek#(首先关闭深度思考和联网搜索)输入或复制你要让它做一个什么样软件的要求和提示词(你可以先用...

我用Deepseek+Trae写的python小软件,小白也能轻松用上模型啦!

利用AI大模型deepseek,搭配TraeCN,用半个小时做了一个本地Ollama安装部署和一键卸载的小工具,哈哈哈!感觉还不错#deepseek#一直想做一个本地Ollama安装部署和一键卸载...

在安卓设备上运行Python的方法(安卓能运行python吗)

技术背景在安卓设备上运行Python可以为开发者提供更多的开发选择和灵活性,能够利用Python丰富的库和简洁的语法来开发各种应用,如游戏、脚本工具等。然而,由于安卓系统原生不支持Python,需要借...

零基础小白,DeepSeek全自动编程,超详细提示词,一键生成软件!

我前面发表了文章,详细说了编程零基础小白,如何利用DeepSeek进行编程的全过程,感兴趣的可以去看看:DeepSeek全自动编程很多人不会写提示词,不知道怎么开始对话。话不多说,请先看下图中的对话,...

小白用DeepSeek+Python编写软件(用python制作软件)

周末无事,用DeepSeek生成全部代码,写了一个mp3音乐播放器,几分钟搞定,DeepSeek确实太强大了。我的提示语是这么写的:“请用Python语言写一个音乐播放器,支持常见音乐格式,我是Pyt...

零基础使用DeepSeek开发Windows应用程序,超简单超实用!

你敢相信,我居然用DeepSeek开发了一个能用的Windows软件!整个过程就像和学霸同桌组队做作业,我负责提需求,DeepSeek负责写代码改bug,全程碰到任何问题直接丢给DeepSeek即可。...

第二篇:如何安装Python并运行你的第一个程序

欢迎回到我的Python入门教程系列!在上一篇中,我们讨论了为什么Python是一门值得学习的编程语言。今天,我们将迈出第一步:安装Python并运行你的第一个程序。无论你是Windows、macOS...

Python 运行,带你找入口,快速读懂程序

有C或Java编程开发经验的软件开发者,初次接触python程序,当你想快速读懂python项目工程时,是否觉得python程序有些太过随意,让你看有些无所适从,进而有些茫然。这是...

取消回复欢迎 发表评论: