windows server+express+node.js配置https


服务端和客户端各有一对公钥和私钥,使用公钥加密的数据只能用私钥解密,建立https传输之前,客户端和服务端互换公钥。客户端发送数据前使用服务端公钥加密,服务端接收到数据后使用私钥解密,反之亦如此。

公钥私钥的生成可用openssl(linux,mac自带,windows上需要自己安装)工具来生成,具体生成步骤如下

1: 生成服务端客户端公钥私钥

// 生成服务器端私钥
$ openssl genrsa -out server.key 1024 

//生成服务端公钥
$ openssl rsa -in server.key -pubout -out server.pem

如果只使用公钥/私钥,会面临一个问题,中间人攻击。在客户端与服务端呼唤公钥的过程中,中间人对服务端充当客户端,对客户端充当服务端的角色。服务端和客户端很难感受到中间人的存在。如下所示 

为了应对这种情况,还需要对得到的服务端公钥进行认证,确定这个公钥是来自你访问的网站。证书里包含了服务器的名称,主机名,服务端的公钥,签发证书机构的名称,来自签名颁发机构的签名。在客户端拿到公钥后会对签名的公钥进行检查是否来自目标服务器,这样避免中间人攻击,生成签名证书的过程如下,(需要用户输入的信息随便填写吧,偷偷懒 :)

2: 生成自签名证书 
CA(Certificate Authority,数字证书认证中心) 
CA的作用是为站点颁发证书,且这个证书有CA通过自己的公钥和私钥实现的签名。通过CA机构颁发证书耗时耗力(贵啊!!!淘宝有单域名证书。。。)。这里使用自签名证书,说白了就说自己扮演CA机构,给自己颁发证书。

    //生成CA私钥
    $ openssl genrsa -out ca.key 1024
    //生成csr文件
    $ openssl req -new -key ca.key -out ca.csr
    //生成自签名证书
    $ openssl x509 -req -in ca.csr -signkey ca.key -out ca.crt
    //生成server.csr文件
    $ openssl req -new -key server.key -out server.csr
    //生成带有ca签名的证书
    $ openssl x509 -req -CA ca.crt -CAkey ca.key -CAcreateserial -in server.csr -out server.crt

使用express和https/http进行建站。

3: demo

var express = require(‘express‘);
var https = require(‘https‘);
var http = require(‘http‘);
var fs = require(‘fs‘);

//同步读取密钥和签名证书
var options = {
    key:fs.readFileSync(‘./keys/server.key‘),
    cert:fs.readFileSync(‘./keys/server.crt‘)
}

var app = express();
var httpsServer = https.createServer(options,app);
var httpServer = http.createServer(app);

app.get(‘/‘,function(req,res,next){
        res.send(‘Hello Express+https‘);
});
//https监听3000端口
httpsServer.listen(3000);
//http监听3001端口
httpServer.listen(3001);

使用chrome访问自签名网站会提示不安全(选择继续就行)

使用脚手架工具生成的代码把app.listen 转接到httsServer.listen就可以了(暂未找到其他方法直接生成使用https的脚手架)

原文地址:https://www.cnblogs.com/ydam/p/10983550.html

时间: 2024-10-06 16:46:22

windows server+express+node.js配置https的相关文章

Nginx 配置HTTPS 与Node.js 配置HTTPS方法

前段时间公司网站要求加上HTTPS安全CA证书,公司服务器全是阿里云服务器,并且配有负载均衡,所以选择直接在阿里云购买CA证书,阿里云有一种证书可以免费试用一年,决定申请此证书,阿里云证书需要验证,阿里云有详细教程 配置之后发现所有在HTTPS访问的网站下的所有连接都需要是HTTPS访问,所以还是需要自己进行配置 配置方案记录一下,方便以后自己配置查找 环境 Centos6.8  Nginx  yum安装 首先要将下载的CA证书上传到服务器上面 , 然后打开/etc/nginx/conf.d/自

Windows 下安装 Node.js

搭建博客系列的 Node.js 环境安装.Windows 下面安装可以通过图形化界面进行安装,非常方面. 1.打开 Node.js 官网,下载对应版本的安装包(msi 后缀的) 2.双击运行下载的程序,点击 next 下一步,然后勾选同意安装协议,安装路径修改成之前建立好的 Tools 文件夹下,或者其它目录,也可以使用默认路径. 3.自定安装,这里我们选择默认就可以了. 4.点击 install 按钮进行安装,等待一下,出现 Finish 按钮,点击完成安装. 5.安装完成之后,我们打开命令行

Windows Server 2012 R2 DNS配置

DNS配置 打开"网络和共享中心"在安装完域控制器后,DNS地址已转变为指向本地的127.0.0.1,可以更改为本机IP192.168.0.2 2.在Server Manager中打开Tools内的DNS组件 3.正向查找区域如下图所示 4.在Reverse Lookup Zones新建区域 5.新建"反向查找区域向导" 6.这里有三种区域类型: 1)        主区域 2)        辅助区域 3)        末节区域 我们选择"主区域&qu

怕忘记-windows 2003服务器安装Node.js NPM

现在高版本的Nodejs安装已经自带了NPM模块,本次我需要安装的是:supervisor 执行命令: npm install -g supervisor 等待安装完成. 查看版本可以cmd里面运行: node -v 纯笔记.记性不好,记录点东西! 怕忘记-windows 2003服务器安装Node.js NPM

windows环境下装node.js,npm,express

windows下安装跟mac环境安装(戳我戳我戳我)大同小异. 1. 下载node.js for Mac 地址: http://nodejs.org/download/ 注意看自己系统是32位还是64位的 我下载的是.msi格式的,还是一路双击next. 当前最新的node.js安装完成包括了npm的. 安装完成,将安装目录加入环境变量PATH中,以便于在任意位置执行node应用. 2.安装express. --全局安装 npm install express -g --安装指定版本npm in

Windows Server 2008 R2 下配置证书服务器和HTTPS方式访问网站

文章来源:http://blog.csdn.net/jiftlixu/article/details/11676081 http://www.cnblogs.com/zhongweiv/archive/2013/01/07/https.html 目录 配置环境 了解HTTPS 配置CA证书服务器 新建示例网站并发布在IIS 新建自签名证书并配置HTTPS 故障排除 其它机器无法通过访问 配置环境 Windows版本:Windows Server 2008 R2 Enterprise Servic

IIS7.0 Windows Server 2008 R2 下配置证书服务器和HTTPS方式访问网站

配置环境 Windows版本:Windows Server 2008 R2 Enterprise Service Pack 1 系统类型: 64 位操作系统 了解HTTPS 为什么需要 HTTPS ? 在我们浏览网站时,多数网站的URL都是以HTTP开头,HTTP协议我们比较熟悉,信息通过明文传输; 使用HTTP协议有它的优点,它与服务器间传输数据更快速准确; 但是HTTP明显是不安全的,我们也可以注意到,当我们在使用邮件或者是在线支付时,都是使用HTTPS; HTTPS传输数据需要使用证书并对

《Node.js入门》Windows 7下Node.js Web开发环境搭建笔记

近期想尝试一下在IBM Bluemix上使用Node.js创建Web应用程序.所以须要在本地搭建Node.js Web的开发測试环境. 这里讲的是Windows下的搭建方法,使用CentOS 的小伙伴请參考:<Node.js入门>CentOS 6.5下Node.js Web开发环境搭建笔记 Node.js是什么? 我们看看百科里怎么说的? JavaScript是一种执行在浏览器的脚本,它简单,轻巧.易于编辑,这样的脚本通经常使用于浏览器的前端编程.可是一位开发人员Ryan有一天发现这样的前端式

Node.js配置And HelloWorld

先从https://nodejs.org/en/上下载Node.js的安装程序  node-v4.4.4-x64.msi 直接双击运行,安装到默认路径 C:\Program Files\nodejs 安装完成后需要配置一下环境变量 我的电脑右键->属性->高级系统设置->环境变量->在path后面加上C:\Program Files\nodejs\node.exe   (node.js的安装目录中的可执行文件) cmd 打印出了版本号说明安装成功了. 开始我的第一个Node.js程