node.js搭建https服务器
2024-09-28 12:22:52
HTTPS简介
HTTPS:(全称:Hypertext Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。 它是一个URI scheme(抽象标识符体系),句法类同http:体系。用于安全的HTTP数据传输。另外在https的站点中是不允许请求http的接口的。
HTTPS和HTTP的区别
https协议需要到ca申请证书,一般免费证书很少,需要交费。
http是超文本传输协议,信息是明文传输,https 则是具有安全性的ssl加密传输协议。
http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。
openssl生成证书文件
只要安装了git客户端就会有openssl
检测openssl是否安装
openssl version -a
接下来开始生成证书:
#、生成私钥key文件:
openssl genrsa -out privatekey.pem #、通过私钥生成CSR证书签名 (需要填一些信息、可直接回车)
openssl req -new -key privatekey.pem -out certrequest.csr #、通过私钥和证书签名生成证书文件
openssl x509 -req -in certrequest.csr -signkey privatekey.pem -out certificate.pem
执行完第三条命令会看到:
Signature ok
表示生成成功,最终看到如下三个文件
privatekey.pem: 私钥
certrequest.csr: CSR证书签名
certificate.pem: 证书文件
Node.js修改启动文件:app.js
~ vi app.js //最下面
var https = require('https')
,fs = require("fs"); var options = {
key: fs.readFileSync('./privatekey.pem'),
cert: fs.readFileSync('./certificate.pem')
}; https.createServer(options, app).listen(3011, function () {
console.log('Https server listening on port ' + 3011);
});
启动服务器:
Express server listening on port 3000
Https server listening on port 3011
常见问题:
1、Failed to load resource: net::ERR_INSECURE_RESPONSE
这个是因为你用的证书不正规,让浏览器给拦截掉了,打开你的控制台并点击里面的URL。它将带你进入API页面,然后在页面中接受SSL证书,返回你的应用页面并重新加载。
最新文章
- 从Unity3D编译器升级聊起Mono
- 让ASP.NET Web API支持POST纯文本格式(text/plain)的数据
- Java Native Interface Specification—Contents
- codeforces 300E Empire Strikes Back 数论+二分查找
- WCF 笔记 (2) - 传输泛型 List 对象
- VC++制作DLL具体解释
- LeetCode FindMinimuminRotatedSorteArray &;&;FindMinimuminRotatedSorteArray2
- 使用日期工具类:DateUtil
- java获取字符串格式日期向前或向后n天的日期
- VUE脚手架搭建
- linux防火墙相关 iptables
- robot framework笔记(一):环境配置(基于python3)+在pycharm中编写及运行robot脚本
- cf581F 依赖背包+临时数组 好题
- java中的throw、throws和try catch浅析
- vue实例详解
- 练习题|网络编程-socket开发
- git 出现冲突时的解决办法
- Java编程的逻辑 (58) - 文本文件和字符流
- 编译Console程序时,可以指定Main入口函数
- Error reading field 'throttle_time_ms': java.nio.BufferUnderflowException
热门文章
- cmd应用
- QTREE5 - Query on a tree V(LCT)
- [AIR] AIR将数据保存并导出为Excel
- 1,Thread 概念以及Thread 的6个状态
- classnofoundexception:org.springframework.ui.freemarker.FreeMarkerConfigurationFactory
- 斐讯K2P配置文件破解笔记
- (STM32F4) IAP程式碼實現
- 简述Dubbo
- Win10远程连接,出现身份验证错误。远程计算机要求的函数不受支持 这可能是由于CredSSP加密Oracle修正 。
- Ubuntu系统下移动宽带自动启用设置