三、第四节 创建https服务
为什么要使用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服务相关推荐
- Python编程基础:第三十四节 文件移动Move a File
第三十四节 文件移动Move a File 前言 实践 前言 当我们需要将一个文件/文件夹移动到另一个指定路径时,就需要用到shutil.move()函数,该函数需要指定两个参数shutil.move ...
- (数据库系统概论|王珊)第十一章并发控制-第二、三、四节:封锁、封锁协议活锁和死锁
文章目录 一:封锁 (1)概念 (2)类型 (3)控制方式 二:封锁协议 (1)概念 (2)三级封锁协议 ①:一级封锁协议 ②:二级封锁协议 ③:三级封锁协议 三:活锁和死锁 (1)活锁 (2)死锁 ...
- Hadoop生态圈(三十四)- YARN WebUI服务使用指南
目录 前言 1. WebUI V1使用指南 1.1 首页 1.2 应用程序分析 2. HistoryServer服务 2.1 JobHistoryServer管理MR应用 2.1.1 提交MR应用程序 ...
- 学习笔记第三十四节课
rsync工具介绍 这个是个同步的工具,这个几乎每天都能用到. 类似于cp 和cp不一样.不同机器传输文件,备份, 同台机器,A-B目录传输都可以. 假设有一个A目录 和一个B目录 现在把A拷贝到B下 ...
- 小甲鱼第三十四节034课后题
1.Python中,else语句能跟哪些语句进行搭配? if for .while 3.使用什么语句可以使你不必担心文件打开后却忘记关闭的尴尬? 使用with语句 try:with open('som ...
- 计算机组成原理第三章第三丶四节知识总结
3.3动态随机存取存储器 3.3.1DRAM存储元的工作原理 3.3.2DRAM芯片的逻辑结构 (1)增加了行地址锁存器和列地址锁存器.由于DRAM存储器 容量很大,地址线宽度相应要增加,这势必增加芯 ...
- Lua manual翻译——第三章第三、四节
因为受到经济危机的影响,我在 bokee.com 的博客可能随时出现无法访问的情况:因此将2005年到2006年间在 bokee.com 撰写的博客文章全部迁移到 csdn 博客中来,本文正是其中一篇 ...
- WebRTC源码研究(7)创建简单的HTTPS服务
文章目录 WebRTC源码研究(7)创建简单的HTTPS服务 1. HTTPS简介 2. HTTPS 协议 3. HTTPS 证书 4. 创建简单的HTTPS服务 4.1 生成HTTPS证书 4.2 ...
- 【金三银四】Java集合面试题(2021最新版)
目录 前言 一.集合容器概述 1. 什么是集合 2. 集合的特点 3. 集合和数组的区别 4. 使用集合框架的好处 5. 常用的集合类有哪些? 6. List,Set,Map三者的区别? 7. 集合框 ...
- 【金三银四】Java中间件面试题(2021最新版)
目录 前言 Zookeeper 1. ZooKeeper 是什么? 2. ZooKeeper 提供了什么? 3.Zookeeper 文件系统 4. ZAB 协议? 5. 四种类型的数据节点 Znode ...
最新文章
- ALV设置参考表和参考字段,自定义列名称可能失效
- Scala Array中_ filter map的用法示例
- kafka 报错:kafka server:Message was too large ,server rejected it to avoid allocation
- Dalsa线扫相机SDK开发-小试牛刀(1)
- php数组取字段值,php如何获取二维数组指定的某个字段的值
- 尝试使用jBPM Console NG(测试版)
- 微软的平板电脑_Microsoft 微软 Surface Go 2 10.5英寸二合一平板电脑(m3-8100Y、8GB、128GB、LTE) 5788元...
- java csv下载_java 生成csv文件,弹出下载对话框。。。
- 揭秘政企安全加速解决方案的架构与应用场景实践
- 基于融合计算?蚂蚁金服的在线机器学习是如何做的
- 基础html交代选择器,html 选择器之基础选择器
- ubuntu使用git时,终端不显示git分支。
- 目前我们所说的个人商用计算机属于,计算机组成原理试题库(大专生用,共20份,有答案)...
- python利器-Python利器|给大家推荐几个既好看又好用的-Python编程器
- android 手机内存清理,安卓手机内存如何清理 安卓手机内存清理方法【介绍】
- mongodb——mongo笔记*
- 辞职信上写什么辞职理由比较合适
- 计算机重启后e盘没了,Win10电脑怎么隐藏磁盘分区?
- 国标GB28181视频流媒体平台4G摄像头无插件直播平台EasyGBS出现实时视频点播错误问题解析
- 燃气轮机发电系统matlab仿真模型,基于MATLAB的微型燃气轮机发电系统的建模及仿真.doc...