返回首页 | 申博娱乐APP下载

合作共赢、快速高效、优质的网站建设提供商

更多精品源码-尽在织梦模板-www.moke8.com

网站开发详解HTTPS 的原理和 NodeJS 的完成

时间:2017-09-09 编辑:admin

下图扼要的说明晰这个流程的完成。

一开始我们也心存疑问:为什么要独自运用别的一组申博娱乐app下载对称秘钥来完成对信息的加密而不直接运用服务器和客户端两边的非对称秘钥呢?我们本身十分认同下面这个答复的解说:

传输进程运用对称密钥是因为对称加密比非对称加密的运算量低一个数量级以上,所以这样的方法能够进步两边会话的运算速度。

关于加密算法不是十分了解,期望大牛点拨一二。

Openssl自签名证书的生成

HTTPS中一个要害就是证书文件。当然我们们能够找专业的第三方组织签发。自己玩玩的话就用自签名的证书就能够了,用户在拜访的时分则需求承认安全性问题。 1、生成传输pre-master secret的时分所需求的Server端的私钥,运行时提示需求输入暗码,用于对key的加密。今后每次读取此文件的时分,都需求输入指令。

# 生成服务器端的非对称秘钥
openssl genrsa -des3 -out server.key 1024
# 生成签名恳求的CSR文件
openssl req -new -key server.key -out server.csr
# 自己对证书进行签名,签名的有效期是365天
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
# 去除证书文件的password
cp server.key server.key.orig
openssl rsa -in server.key.orig -out server.key

终究在树立HTTPS链接中运用的文件是

server.crt server.key

NodeJS树立一个HTTPS的Server

var httpsModule = require('https');
var fs = require('fs');
var https = httpsModule.Server({
 key: fs.readFileSync('/path/to/server.key'),
 cert: fs.readFileSync('/path/to/server.crt')
}, function(req, res){
 res.writeHead(200);
 res.end("hello world\n");
//https默许de监听端口时443,发动1000以下的端口时需求sudo权限
https.listen(443, function(err){ 
 console.log("https listening on port: 443");

这儿运用的fs.readFileSync挑选会堵塞其他进程直到文件的读取结束,在读取要害的配置文件的时分这样的挑选是比较适合的。


浏览:

网站建设

流程

    网站建设流程