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 相关文章推荐
使用户点击后退按钮使效三行代码
Jul 07 Javascript
JavaScript 对象的属性和方法4种不同的类型
Mar 19 Javascript
解析使用JS 清空File控件的路径值
Jul 08 Javascript
jQuery mobile类库使用时加载导航历史的方法简介
Dec 04 Javascript
js为什么不能正确处理小数运算?
Dec 29 Javascript
学习javascript面向对象 javascript实现继承的方式
Jan 04 Javascript
Bootstrap每天必学之弹出框(Popover)插件
Apr 25 Javascript
基于input框覆盖掉数字英文的实例讲解
Jul 21 Javascript
JS实现table表格内针对某列内容进行即时搜索筛选功能
May 11 Javascript
JavaScript 严格模式(use strict)用法实例分析
Mar 04 Javascript
Vue项目前后端联调(使用proxyTable实现跨域方式)
Jul 18 Javascript
逐行分析鸿蒙系统的 JavaScript 框架(推荐)
Sep 17 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
php中$_GET与$_POST过滤sql注入的方法
2014/11/03 PHP
php页面缓存方法小结
2015/01/10 PHP
thinkPHP5.0框架配置格式、加载解析与读取方法
2017/03/17 PHP
jQuery中dequeue()方法用法实例
2014/12/29 Javascript
JS+CSS实现简易实用的滑动门菜单效果
2015/09/18 Javascript
JS实现的3D拖拽翻页效果代码
2015/10/31 Javascript
js点击按钮实现带遮罩层的弹出视频效果
2015/12/19 Javascript
AngularJS 2.0新特性有哪些
2016/02/18 Javascript
JavaScript实战(原生range和自定义特效)简单实例
2016/08/21 Javascript
手机端转换rem适应
2017/04/01 Javascript
vue引用js文件的多种方式(推荐)
2018/05/17 Javascript
vue组件(全局,局部,动态加载组件)
2018/09/02 Javascript
js将URL网址转为16进制加密与解密函数
2020/03/04 Javascript
完美解决通过IP地址访问VUE项目的问题
2020/07/18 Javascript
python 按不同维度求和,最值,均值的实例
2018/06/28 Python
pycharm运行出现ImportError:No module named的解决方法
2018/10/13 Python
使用Python获取并处理IP的类型及格式方法
2018/11/01 Python
使用python对文件中的数值进行累加的实例
2018/11/28 Python
深入了解Python枚举类型的相关知识
2019/07/09 Python
Python中的list与tuple集合区别解析
2019/10/12 Python
基于Pyinstaller打包Python程序并压缩文件大小
2020/05/28 Python
美国顶级防滑鞋:Shoes For Crews
2017/03/27 全球购物
猫途鹰:全球领先的旅游点评社区
2017/04/07 全球购物
编写一子程序,将一链表倒序,即使链表表尾变表头,表头变表尾
2016/02/10 面试题
电大毕业生自我鉴定
2013/11/10 职场文书
护士试用期自我鉴定
2014/02/08 职场文书
法英专业大学生职业生涯规划范文:衡外情,量己力!
2014/09/23 职场文书
2014年社区民政工作总结
2014/12/02 职场文书
2015幼儿园庆元旦活动方案
2014/12/09 职场文书
小学优秀学生评语
2014/12/29 职场文书
司机岗位职责范本
2015/04/10 职场文书
公务员保密工作承诺书
2015/05/04 职场文书
起诉书格式范文
2015/05/20 职场文书
2015年小学二年级班主任工作总结
2015/05/21 职场文书
怒海潜将观后感
2015/06/11 职场文书
学习《中小学教师职业道德规范》心得体会
2016/01/18 职场文书