Express本地测试HTTPS的示例代码


Posted in Javascript onJune 06, 2018

我的环境

  1. 亚马逊(AWS)的一个ubuntu虚拟机.
  2. node
  3. openssl

生成证书

输入如下命令会在你的当前文件夹生成localhost.key和localhost.cert.

openssl genrsa -out localhost.key 2048
openssl req -new -x509 -key localhost.key -out localhost.cert -days 3650 -subj /CN=localhost

其中localhost为域名. 想要换成别的域名就直接把上面的所有localhost替换成你的域名.

以我为例, 我的虚拟机的域名是xxx.compute.amazonaws.com, 就以这个域名替换上面所有的localhost, 会生成, ec2-34-220-96-9.us-west-2.compute.amazonaws.com.key ec2-34-220-96-9.us-west-2.compute.amazonaws.com.cert两个文件.

更新

openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365

如果不想用密码保护私钥, 加上-nodes.

加上-subj '/CN=localhost'可以设置certificate的内容. 将其中的localhost替换成你的域名.

参考:How to create a self-signed certificate with openssl?

代码

想要运行如下代码, 需要先安装包

npm init
npm i -S https express

创建文件index.js, 内容如下.

#!/usr/bin/env node

var https = require('https');
var fs = require('fs');
var express = require('express');

var host = 'xxx.compute.amazonaws.com'; // Input you domain name here.
var options = {
  key: fs.readFileSync( './' + host + '.key' ),
  cert: fs.readFileSync( './' + host + '.cert' ),
  requestCert: false,
  rejectUnauthorized: false
};

var httpApp = express();
var app = express();
app.get('/', function (req, res) {
 res.send('hi HTTPS');
});
httpApp.get('/', function (req, res) {
 res.send('hi HTTP');
});
httpApp.listen(80, function () {
 console.log('http on 80');
});
var server = https.createServer( options, app );

server.listen( 443, function () {
  console.log( 'https on 443' );
} );

启动服务器

sudo node index.js

访问

浏览器中输入http://xxx.compute.amazonaws.com/就会以80端口访问HTTP服务器. 显示hi HTTP.

输入https://xxx.compute.amazonaws.com/就会以443端口访问HTTPS服务器, 显示hi HTTPS.

参考

Self-Signed, Trusted Certificates for Node.js & Express.js

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
IE6弹出“已终止操作”的解决办法
Nov 27 Javascript
10款新鲜出炉的 jQuery 插件(Ajax 插件,有幻灯片、图片画廊、菜单等)
Jun 08 Javascript
js比较和逻辑运算符的介绍
Mar 10 Javascript
使用JSLint提高JS代码质量方法分享
Dec 16 Javascript
js 中将多个逗号替换为一个逗号的代码
Jun 07 Javascript
jQuery及JS实现循环中暂停的方法
Feb 02 Javascript
不定义JQuery插件 不要说会JQuery
Mar 07 Javascript
bootstrap实现的自适应页面简单应用示例
Mar 09 Javascript
Node.JS 循环递归复制文件夹目录及其子文件夹下的所有文件
Sep 18 Javascript
微信小程序实现图片上传
May 23 Javascript
Vue实现PC端靠边悬浮球的代码
May 09 Javascript
Vue.js使用axios动态获取response里的data数据操作
Sep 08 Javascript
微信小程序仿美团城市选择
Jun 06 #Javascript
jQuery实现百度图片移入移出内容提示框上下左右移动的效果
Jun 05 #jQuery
详解封装基础的angular4的request请求方法
Jun 05 #Javascript
React.js绑定this的5种方法(小结)
Jun 05 #Javascript
微信小程序实现城市列表选择
Jun 05 #Javascript
vue.js将时间戳转化为日期格式的实现代码
Jun 05 #Javascript
如何使node也支持从url加载一个module详解
Jun 05 #Javascript
You might like
eWebEditor v3.8 商业完整版 (PHP)
2006/12/06 PHP
php木马webshell扫描器代码
2012/01/25 PHP
php中Snoopy类用法实例
2015/06/19 PHP
Linux系统中为php添加pcntl扩展
2016/08/28 PHP
PHP实现数据库统计时间戳按天分组输出数据的方法
2017/10/10 PHP
Javascript动态创建div的方法
2015/02/09 Javascript
浅谈JavaScript中的String对象常用方法
2015/02/25 Javascript
JS实现从网页顶部掉下弹出层效果的方法
2015/08/06 Javascript
javascript创建含数字字母的随机字符串方法总结
2016/08/01 Javascript
JavaScript基础——使用Canvas绘图
2016/11/02 Javascript
JS异步文件分片断点上传的实现思路
2016/12/25 Javascript
图文介绍Vue父组件向子组件传值
2018/02/17 Javascript
浅谈node中的cluster集群
2018/06/02 Javascript
解决vue 打包发布去#和页面空白的问题
2018/09/04 Javascript
webpack优化的深入理解
2018/12/10 Javascript
原生JS实现多条件筛选
2020/08/19 Javascript
分析python服务器拒绝服务攻击代码
2014/01/16 Python
python用来获得图片exif信息的库实例分析
2015/03/16 Python
python实现将汉字转换成汉语拼音的库
2015/05/05 Python
python相似模块用例
2016/03/04 Python
利用Python yagmail三行代码实现发送邮件
2018/05/11 Python
python实现字符串加密成纯数字
2019/03/19 Python
python 将字符串完成特定的向右移动方法
2019/06/11 Python
python @classmethod 的使用场合详解
2019/08/23 Python
wxPython之wx.DC绘制形状
2019/11/19 Python
python图片指定区域替换img.paste函数的使用
2020/04/09 Python
浅谈python opencv对图像颜色通道进行加减操作溢出
2020/06/03 Python
商务英语求职自荐信范文
2013/12/24 职场文书
乡下人家教学反思
2014/02/01 职场文书
教师廉洁自律承诺书
2014/05/26 职场文书
电子商务专业毕业生自荐书
2014/06/22 职场文书
干部个人对照检查材料
2014/08/25 职场文书
2014年教师节演讲稿
2014/09/03 职场文书
2015年党风廉政承诺书
2015/01/22 职场文书
2015年幼师工作总结
2015/04/28 职场文书
canvas多重阴影发光效果实现
2021/04/20 Javascript