网站首页 > 精选教程 正文
最近上线了一个面向前端领域技术干货的邮件订阅服务,全站启用了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 ,来关注我们吧,也欢迎你将它分享给自己的朋友。
猜你喜欢
- 2024-10-10 如何用Node监听80端口 nodejs监听端口
- 2024-10-10 kubernetes 弹性伸缩之 Node自动扩容/缩容
- 2024-10-10 什么是Java开发人员的Node.js? 什么是java开发工程师
- 2024-10-10 深入理解nodejs的异步IO与事件模块机制
- 2024-10-10 使用 Docker 和 Node 搭建公式渲染服务(中篇)
- 2024-10-10 基于阿里云的 Node.js 稳定性实践
- 2024-10-10 Node实战003:FS文件操作实现请求动态响应文件
- 2024-10-10 带你认识什么是Node.js node.js是什么?能做什么?
- 2024-10-10 运用 node-webkit将Web项目封装为PC客户端
- 2024-10-10 Node.js 请求后端超时 nodejs后端部署
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- nginx反向代理 (57)
- nginx日志 (56)
- nginx限制ip访问 (62)
- mac安装nginx (55)
- java和mysql (59)
- java中final (62)
- win10安装java (72)
- java启动参数 (64)
- java链表反转 (64)
- 字符串反转java (72)
- java逻辑运算符 (59)
- java 请求url (65)
- java信号量 (57)
- java定义枚举 (59)
- java字符串压缩 (56)
- java中的反射 (59)
- java 三维数组 (55)
- java插入排序 (68)
- java线程的状态 (62)
- java异步调用 (55)
- java中的异常处理 (62)
- java锁机制 (54)
- java静态内部类 (55)
- java怎么添加图片 (60)
- java 权限框架 (55)
本文暂时没有评论,来添加一个吧(●'◡'●)