为什么要使用HTTPS服务

个人因素及安全原因

我们通过nodeJS来创建一个HTTP服务,为什么这里要介绍HTPS服务呢?这主要与我们后面的例子有关,那么我们后面的例子呢,会要调用这个浏览器的音频设备和视频设备,但这些设备呢,实际是涉及到了一个个人的隐私问题,那对于Chrome来说,他对这方面的检查实际上是非常严格的,所以如果你不是HTTPS服务的话,那你想调用。打开摄像头,或者是打开音频设备,那他是不允许的。

https是未来的趋势

是由于https本身也是未来的一个趋势,目前基本上所有的网站都提供了HTTPS服务,所以呢,在这里呢,我们也要向大家介绍一下如何使用https服务,那什么是HTTPS功能可以简单的理解啊,就是http+TSL/SSL;

什么意思呢,就是http本身的内容是明文的,那我们要将这个明文的内容经过 加密进行传输,可能认为 加密后的http就是https,当然并没有那么简单啦,真正的https还要经过第三方的机构认证,拿到你的证书,知道你的公钥和私钥是什么,对于客户端来说 ,需要拿到你的公钥,然后把内容进行加密,对于服务端来说需要有私钥进行解密,这里涉及到的内容很复杂,大家可以了解一下。我们这里只要知道如何使用就可以了 。

首先客户端要向服务端发送一个握手,

服务端收到请求之后要下发证书给客户端,

那客户端和服务端就要交换密钥和协商加密算法,对于客户端来说需要得到服务端的公钥,服务端需要有这个私钥,将这个客户端加密的内容进行解密,第三步完成之后,我们就可以进行数据的传输了。以上就是https的一个基本原理。我们只做一个基本了解就可以了。

下面我通过nodeJS来 搭建一个https的服务。

生成HTTPS证书

这里有几点要主要,那么第一点就是要生成https证书,那么生成的证书有两种,一种是私有的证书 ,另一种是认证的证书 ,私有证书就是我们自己产生的证书,这种证书对于浏览器来说一般是不认可的,如果是我们自己写的应用程序,我们可以使用私有 证书。对于浏览器来说一般都是需要认证的证书。也就是 第三方机构,比如赛门铁克颁发的证书。

买了域名之后,从域名的厂商那经过它的代理,去购买这个证书。

引入HTTPS模块

指定证书位置,并创建HTTPS服务

也就是说我们生成的证书,要存放到一个固定的位置,这样我们在创建HTTPS的时候,启动HTTPS服务找到这个位置,它就可以 把这个服务启动起来了。

下面我实际操作一下

创建一个文件夹htts_server,创建文件server.js

将证书先拷贝过来

1557605_www.learningrtc.cn.key

-----BEGIN RSA PRIVATE KEY-----
MIIEpAIBAAKCAQEAgECrBRI9h/EE1QhLQBIxqeZFAFh4obAm7jGIR3QMUimHxR5X
SRmkVKbkMMQLXtZPG/vgva8SmUSSbdOTvOXXjL3cBet8gRuQ2sxlypMDJbkawPyr
Gct5T497op0jvLCxX6E3LJOe8AF22bVRYL5oMQFxZV+1cfTDYGDHZKPowJbQmtwp
JknKnD3f2jp48eJ2s+5NyZdQB2O48SGkRiwXfmosTmcNgiXR46WIvvhkbVQSKMOZ
It1lZtZXp7B6NxllY1D+ayG7LbaW6Y2tldFMuXrNRnK5pKfXuAVE8qKSZBqqwBdr
lmcWQfAnCZBXHjlHwmN7+TFh99dQcAWmfhp4AQIDAQABAoIBADAChUKnulrqMWnh
6fF5HhhAt/HSLI4yV9BwwFgnK/mRzF5Q5lHaBHcf5moO6Ua+KO0L0+yN3gN79Oih
/DsJOzBXXkblCT13aTlOrIgxkksLyOUXcKF+VtIenySXeGpJJozq17GbLTMhCTGk
O2tgu7YkmSNeuZiIDJ9Gez3EUfvNrexlpIndjHIiyMh6Hv2TmGofZsX48Sl6ocgH
bGlgnLEExJCacX1KyWpL2QraV9jhF7WCXgEPLWcOq4r+aKkMpP/v1gZKPNMHq0OM
7ytCDrcvChnxG8azWsiXuptCqillm3QZSItzUBPjMFUzbBairikHdtPdzuzm6B+a
F8T3A1UCgYEA41mTEVrzY0EWiUo5WWFBDndS/3WdIRpW3N9NhFG+JeIHQJf20bXV
egUFj5d2eR7H2pjRYRuhCfdeIXZ1kkZchAfrYoMoI/dKbCl1DtG1+au/Id+UUf1Z
nczbRERD3Ijx/1F+c8nHLutfG1/d3J+8A3f/61YnWuhVw9HAyUTWSB8CgYEAkGop
5KhpMZvrvBTHhIP82Tf3DQhmbGIfLj+KuJFRfK5UZlGzFtR17CYnT4mqMM/A6u6v
He++rz8M/zwtRWwN+DbATKF2pEDiNCu6+Duq8MkS5wxNR2azm170gC+Cf21IEeVG
0/VH08/0ChVIp6flw6Q0zBIcwABzQNBKsYLdu98CgYEA0mPKXX01Ttyk5lfxymzd
r21tOUq2JjQhvjRHn/Ola5lH7Na0ak1DSK/s/XzE/kEl4X0aBitzU62/RmhBVSQX
6XcKtRd6xg3KqV2UHiqjpHDzZ31n3Jf/nrA9GWezBRsWF5hq1Owdj6XxVXvZ7JlF
fFBIXJhVwyLOe3BYX+l8AzECgYBZ3ibpyz+DBqOA7HFobnZXenM74gFS6xC6SAJ8
broF27pb3fWTfG1RokCOR33oWDCWQigpefrwtUzSPFFzxRVAZFnwlf3tow7hJmF4
fjEXHBmuPEKO70NPqZx/dJFB2PCjaklUN2wWTG9yIuKOqnXZ9IKCh7bqaJ1QNQ52
PpjbgwKBgQCTT7sbZynbNUWoQ303gM1DZP0Yl7c7OnOucbrP+pn13d4ipi7jdwiS
3yk0VU7+cn/yqkockt8UTLPRQ0tql5/o2ekENp8qHqsJ1hevlDHRxmD/H8RltJ6X
C6XKac6oWlJXee/3pUoixJFtFIMUl4cruf2A2HDd0l2CrBSVJCiMOA==
-----END RSA PRIVATE KEY-----

1557605_www.learningrtc.cn.pem

-----BEGIN CERTIFICATE-----
MIIFmTCCBIGgAwIBAgIQA/0Ssnj2KNvPpAAwE8RHPTANBgkqhkiG9w0BAQsFADBu
MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
d3cuZGlnaWNlcnQuY29tMS0wKwYDVQQDEyRFbmNyeXB0aW9uIEV2ZXJ5d2hlcmUg
RFYgVExTIENBIC0gRzEwHhcNMTgxMTI3MDAwMDAwWhcNMTkxMTI3MTIwMDAwWjAd
MRswGQYDVQQDExJ3d3cubGVhcm5pbmdydGMuY24wggEiMA0GCSqGSIb3DQEBAQUA
A4IBDwAwggEKAoIBAQCAQKsFEj2H8QTVCEtAEjGp5kUAWHihsCbuMYhHdAxSKYfF
HldJGaRUpuQwxAte1k8b++C9rxKZRJJt05O85deMvdwF63yBG5DazGXKkwMluRrA
/KsZy3lPj3uinSO8sLFfoTcsk57wAXbZtVFgvmgxAXFlX7Vx9MNgYMdko+jAltCa
3CkmScqcPd/aOnjx4naz7k3Jl1AHY7jxIaRGLBd+aixOZw2CJdHjpYi++GRtVBIo
w5ki3WVm1lensHo3GWVjUP5rIbsttpbpja2V0Uy5es1Gcrmkp9e4BUTyopJkGqrA
F2uWZxZB8CcJkFceOUfCY3v5MWH311BwBaZ+GngBAgMBAAGjggKCMIICfjAfBgNV
HSMEGDAWgBRVdE+yck/1YLpQ0dfmUVyaAYca1zAdBgNVHQ4EFgQUGCuoNOqYS8DF
1dd4XIP/YilDUJEwLQYDVR0RBCYwJIISd3d3LmxlYXJuaW5ncnRjLmNugg5sZWFy
bmluZ3J0Yy5jbjAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwEG
CCsGAQUFBwMCMEwGA1UdIARFMEMwNwYJYIZIAYb9bAECMCowKAYIKwYBBQUHAgEW
HGh0dHBzOi8vd3d3LmRpZ2ljZXJ0LmNvbS9DUFMwCAYGZ4EMAQIBMH0GCCsGAQUF
BwEBBHEwbzAhBggrBgEFBQcwAYYVaHR0cDovL29jc3AuZGNvY3NwLmNuMEoGCCsG
AQUFBzAChj5odHRwOi8vY2FjZXJ0cy5kaWdpY2VydC5jb20vRW5jcnlwdGlvbkV2
ZXJ5d2hlcmVEVlRMU0NBLUcxLmNydDAJBgNVHRMEAjAAMIIBBAYKKwYBBAHWeQIE
AgSB9QSB8gDwAHUAu9nfvB+KcbWTlCOXqpJ7RzhXlQqrUugakJZkNo4e0YUAAAFn
VArhKwAABAMARjBEAiBYzdYfv9uZCl7ItYugZ8rKwBdkl64L3Bo4hMyM2oLPdAIg
OOy3aJnqp31jGrtIG5u6hPfAWNkiBPfGQCEDeBsRhaYAdwCHdb/nWXz4jEOZX73z
bv9WjUdWNv9KtWDBtOr/XqCDDwAAAWdUCuH+AAAEAwBIMEYCIQD4eai+g9Dx4ZhW
h8+VDwRjrspTNycWeg0ehjf+p5NwBAIhAPQpUvUrdJp/KqLKz4TNnyJtU0ezPZdY
XGQVeYtwkDOQMA0GCSqGSIb3DQEBCwUAA4IBAQAZwr2CFBCmPw4H16UpsbEK4Wie
ldbsrBhRMX2bH47Sr2CQvAJLm2MODVDi7XtF1ZR1XmLQOiKsHNVXveDq5UJomWIn
NDkXxYPNMQzVB6WLxO9HZsM302CIrE4ds9PUWWZ8wVtyv6o/nqczu+uuyX0Vs0/J
dclkw7r3TntrPwgTj/3dCSBchdT33vdTGjnyc9Hz7gN0aU8Ksnzf7Vxm53lmk4t1
aHKYUDQtPle5MKNgg88fjCsrfMZAfpcR3GKfCSa3I4f4vhvsg2ap4fJsXKjHtOLN
8qfw7B8Qm5/PpsRzYHB+WEPkfwIKxR9gIifQEbNnSSCCl3GJVqH4c1HJcb1z
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIEqjCCA5KgAwIBAgIQAnmsRYvBskWr+YBTzSybsTANBgkqhkiG9w0BAQsFADBh
MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
d3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBD
QTAeFw0xNzExMjcxMjQ2MTBaFw0yNzExMjcxMjQ2MTBaMG4xCzAJBgNVBAYTAlVT
MRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5j
b20xLTArBgNVBAMTJEVuY3J5cHRpb24gRXZlcnl3aGVyZSBEViBUTFMgQ0EgLSBH
MTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALPeP6wkab41dyQh6mKc
oHqt3jRIxW5MDvf9QyiOR7VfFwK656es0UFiIb74N9pRntzF1UgYzDGu3ppZVMdo
lbxhm6dWS9OK/lFehKNT0OYI9aqk6F+U7cA6jxSC+iDBPXwdF4rs3KRyp3aQn6pj
pp1yr7IB6Y4zv72Ee/PlZ/6rK6InC6WpK0nPVOYR7n9iDuPe1E4IxUMBH/T33+3h
yuH3dvfgiWUOUkjdpMbyxX+XNle5uEIiyBsi4IvbcTCh8ruifCIi5mDXkZrnMT8n
wfYCV6v6kDdXkbgGRLKsR4pucbJtbKqIkUGxuZI2t7pfewKRc5nWecvDBZf3+p1M
pA8CAwEAAaOCAU8wggFLMB0GA1UdDgQWBBRVdE+yck/1YLpQ0dfmUVyaAYca1zAf
BgNVHSMEGDAWgBQD3lA1VtFMu2bwo+IbG8OXsj3RVTAOBgNVHQ8BAf8EBAMCAYYw
HQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMBIGA1UdEwEB/wQIMAYBAf8C
AQAwNAYIKwYBBQUHAQEEKDAmMCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdp
Y2VydC5jb20wQgYDVR0fBDswOTA3oDWgM4YxaHR0cDovL2NybDMuZGlnaWNlcnQu
Y29tL0RpZ2lDZXJ0R2xvYmFsUm9vdENBLmNybDBMBgNVHSAERTBDMDcGCWCGSAGG
/WwBAjAqMCgGCCsGAQUFBwIBFhxodHRwczovL3d3dy5kaWdpY2VydC5jb20vQ1BT
MAgGBmeBDAECATANBgkqhkiG9w0BAQsFAAOCAQEAK3Gp6/aGq7aBZsxf/oQ+TD/B
SwW3AU4ETK+GQf2kFzYZkby5SFrHdPomunx2HBzViUchGoofGgg7gHW0W3MlQAXW
M0r5LUvStcr82QDWYNPaUy4taCQmyaJ+VB+6wxHstSigOlSNF2a6vg4rgexixeiV
4YSB03Yqp2t3TeZHM9ESfkus74nQyW7pRGezj+TC44xCagCQQOzzNmzEAP2SnCrJ
sNE2DpRVMnL8J6xBRdjmOsC3N6cQuKuRXbzByVBjCqAA8t1L0I+9wXJerLPyErjy
rMKWaBFLmfK/AHNF4ZihwPGOc7w6UHczBZXH5RFzJNnww+WnKuTPI0HfnVH8lg==
-----END CERTIFICATE-----

下面我们要写一个服务程序 server.js

// 1、申明严格模式
'use strict'// 2、引入 https 模块
var https = require('https');
// 3、 引入文件模块,读取证书
var fs = require('fs');// fs.readFileSync() 指从某处读取文件
var options = {key  : fs.readFileSync('./cert/1557605_www.learningrtc.cn.key'),cert : fs.readFileSync('./cert/1557605_www.learningrtc.cn.pem')
}// 4、创建 一个 https服务  options就是指我们证书
var app = https.createServer(options, function(req, res){// 返回请求头res.writeHead(200, {'Content-Type': 'text/plain'});// 返回内容res.end('HTTPS:Hello World!\n');}).listen(443, '0.0.0.0');

运行 node server.js  服务就启动起来了

我们搜索一下443端口有没有启动

输入 netstat  -ntpl | grep 443

我们看到端口已经启动起来了

三、第四节 创建https服务相关推荐

  1. Python编程基础:第三十四节 文件移动Move a File

    第三十四节 文件移动Move a File 前言 实践 前言 当我们需要将一个文件/文件夹移动到另一个指定路径时,就需要用到shutil.move()函数,该函数需要指定两个参数shutil.move ...

  2. (数据库系统概论|王珊)第十一章并发控制-第二、三、四节:封锁、封锁协议活锁和死锁

    文章目录 一:封锁 (1)概念 (2)类型 (3)控制方式 二:封锁协议 (1)概念 (2)三级封锁协议 ①:一级封锁协议 ②:二级封锁协议 ③:三级封锁协议 三:活锁和死锁 (1)活锁 (2)死锁 ...

  3. Hadoop生态圈(三十四)- YARN WebUI服务使用指南

    目录 前言 1. WebUI V1使用指南 1.1 首页 1.2 应用程序分析 2. HistoryServer服务 2.1 JobHistoryServer管理MR应用 2.1.1 提交MR应用程序 ...

  4. 学习笔记第三十四节课

    rsync工具介绍 这个是个同步的工具,这个几乎每天都能用到. 类似于cp 和cp不一样.不同机器传输文件,备份, 同台机器,A-B目录传输都可以. 假设有一个A目录 和一个B目录 现在把A拷贝到B下 ...

  5. 小甲鱼第三十四节034课后题

    1.Python中,else语句能跟哪些语句进行搭配? if for .while 3.使用什么语句可以使你不必担心文件打开后却忘记关闭的尴尬? 使用with语句 try:with open('som ...

  6. 计算机组成原理第三章第三丶四节知识总结

    3.3动态随机存取存储器 3.3.1DRAM存储元的工作原理 3.3.2DRAM芯片的逻辑结构 (1)增加了行地址锁存器和列地址锁存器.由于DRAM存储器 容量很大,地址线宽度相应要增加,这势必增加芯 ...

  7. Lua manual翻译——第三章第三、四节

    因为受到经济危机的影响,我在 bokee.com 的博客可能随时出现无法访问的情况:因此将2005年到2006年间在 bokee.com 撰写的博客文章全部迁移到 csdn 博客中来,本文正是其中一篇 ...

  8. WebRTC源码研究(7)创建简单的HTTPS服务

    文章目录 WebRTC源码研究(7)创建简单的HTTPS服务 1. HTTPS简介 2. HTTPS 协议 3. HTTPS 证书 4. 创建简单的HTTPS服务 4.1 生成HTTPS证书 4.2 ...

  9. 【金三银四】Java集合面试题(2021最新版)

    目录 前言 一.集合容器概述 1. 什么是集合 2. 集合的特点 3. 集合和数组的区别 4. 使用集合框架的好处 5. 常用的集合类有哪些? 6. List,Set,Map三者的区别? 7. 集合框 ...

  10. 【金三银四】Java中间件面试题(2021最新版)

    目录 前言 Zookeeper 1. ZooKeeper 是什么? 2. ZooKeeper 提供了什么? 3.Zookeeper 文件系统 4. ZAB 协议? 5. 四种类型的数据节点 Znode ...

最新文章

  1. ALV设置参考表和参考字段,自定义列名称可能失效
  2. Scala Array中_ filter map的用法示例
  3. kafka 报错:kafka server:Message was too large ,server rejected it to avoid allocation
  4. Dalsa线扫相机SDK开发-小试牛刀(1)
  5. php数组取字段值,php如何获取二维数组指定的某个字段的值
  6. 尝试使用jBPM Console NG(测试版)
  7. 微软的平板电脑_Microsoft 微软 Surface Go 2 10.5英寸二合一平板电脑(m3-8100Y、8GB、128GB、LTE) 5788元...
  8. java csv下载_java 生成csv文件,弹出下载对话框。。。
  9. 揭秘政企安全加速解决方案的架构与应用场景实践
  10. 基于融合计算?蚂蚁金服的在线机器学习是如何做的
  11. 基础html交代选择器,html 选择器之基础选择器
  12. ubuntu使用git时,终端不显示git分支。
  13. 目前我们所说的个人商用计算机属于,计算机组成原理试题库(大专生用,共20份,有答案)...
  14. python利器-Python利器|给大家推荐几个既好看又好用的-Python编程器
  15. android 手机内存清理,安卓手机内存如何清理 安卓手机内存清理方法【介绍】
  16. mongodb——mongo笔记*
  17. 辞职信上写什么辞职理由比较合适
  18. 计算机重启后e盘没了,Win10电脑怎么隐藏磁盘分区?
  19. 国标GB28181视频流媒体平台4G摄像头无插件直播平台EasyGBS出现实时视频点播错误问题解析
  20. 燃气轮机发电系统matlab仿真模型,基于MATLAB的微型燃气轮机发电系统的建模及仿真.doc...

热门文章

  1. 卡诺模型案例分析_卡诺模型及使用
  2. 卡诺模型案例分析_需求分析神器 | 卡诺模型
  3. k近邻法 kd树 平衡kd树
  4. JS常用的六种设计模式详解
  5. 回文数c语言 字符串,力扣 009 回文数 C语言
  6. html 弹出框 自动关闭,js提示框,n秒后自动关闭
  7. 敏捷开发和瀑布开发的区别
  8. python抽奖教程_python实现抽奖小程序
  9. mysql分页查询参数的含义_mysql分页查询详解
  10. Dart语言学习理由