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证书,返回你的应用页面并重新加载。

 

最新文章

  1. 从Unity3D编译器升级聊起Mono
  2. 让ASP.NET Web API支持POST纯文本格式(text/plain)的数据
  3. Java Native Interface Specification—Contents
  4. codeforces 300E Empire Strikes Back 数论+二分查找
  5. WCF 笔记 (2) - 传输泛型 List 对象
  6. VC++制作DLL具体解释
  7. LeetCode FindMinimuminRotatedSorteArray &&FindMinimuminRotatedSorteArray2
  8. 使用日期工具类:DateUtil
  9. java获取字符串格式日期向前或向后n天的日期
  10. VUE脚手架搭建
  11. linux防火墙相关 iptables
  12. robot framework笔记(一):环境配置(基于python3)+在pycharm中编写及运行robot脚本
  13. cf581F 依赖背包+临时数组 好题
  14. java中的throw、throws和try catch浅析
  15. vue实例详解
  16. 练习题|网络编程-socket开发
  17. git 出现冲突时的解决办法
  18. Java编程的逻辑 (58) - 文本文件和字符流
  19. 编译Console程序时,可以指定Main入口函数
  20. Error reading field 'throttle_time_ms': java.nio.BufferUnderflowException

热门文章

  1. cmd应用
  2. QTREE5 - Query on a tree V(LCT)
  3. [AIR] AIR将数据保存并导出为Excel
  4. 1,Thread 概念以及Thread 的6个状态
  5. classnofoundexception:org.springframework.ui.freemarker.FreeMarkerConfigurationFactory
  6. 斐讯K2P配置文件破解笔记
  7. (STM32F4) IAP程式碼實現
  8. 简述Dubbo
  9. Win10远程连接,出现身份验证错误。远程计算机要求的函数不受支持 这可能是由于CredSSP加密Oracle修正 。
  10. Ubuntu系统下移动宽带自动启用设置