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 相关文章推荐
js实现右下角可关闭最小化div(可用于展示推荐内容)
Jun 24 Javascript
javascript常见数字进制转换实例分析
Apr 21 Javascript
knockoutjs动态加载外部的file作为component中的template数据源的实现方法
Sep 01 Javascript
基于jQuery实现数字滚动效果
Jan 16 Javascript
js实现表格筛选功能
Jan 18 Javascript
JavaScript箭头函数_动力节点Java学院整理
Jun 28 Javascript
js+canvas实现滑动拼图验证码功能
Mar 26 Javascript
vue2.0 可折叠列表 v-for循环展示的实例
Sep 07 Javascript
vue 弹窗时 监听手机返回键关闭弹窗功能(页面不跳转)
May 10 Javascript
微信小程序sessionid不一致问题解决
Aug 30 Javascript
JQuery常用选择器功能与用法实例分析
Dec 23 jQuery
JS PHP字符串截取函数实现原理解析
Aug 29 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 htmlspecialchars()与shtmlspecialchars()函数的深入分析
2013/06/05 PHP
关于php内存不够用的快速解决方法
2013/10/26 PHP
输入值/表单提交参数过滤有效防止sql注入的方法
2013/12/25 PHP
PHP实现链式操作的核心思想
2015/06/23 PHP
PHP递归遍历多维数组实现无限分类的方法
2016/05/06 PHP
jQuery对象和DOM对象的相互转化实现代码
2010/03/02 Javascript
Javascript浅谈之this
2013/12/17 Javascript
javascript跨域的4种方法和原理详解
2014/04/08 Javascript
javascript ajax的5种状态介绍
2014/08/18 Javascript
chrome不支持form.submit的解决方案
2015/04/28 Javascript
Bootstrap 组件之按钮(二)
2016/05/11 Javascript
ajax异步请求详解
2017/01/06 Javascript
vue.js默认路由不加载linkActiveClass问题的解决方法
2017/12/11 Javascript
基于vue如何发布一个npm包的方法步骤
2019/05/15 Javascript
JavaScript定时器常见用法实例分析
2019/11/15 Javascript
[08:07]DOTA2每周TOP10 精彩击杀集锦vol.8
2014/06/25 DOTA
[02:08]2014DOTA2国际邀请赛 430专访:力争取得小组前二
2014/07/11 DOTA
[52:52]DOTA2上海特级锦标赛C组资格赛#1 OG VS LGD第三局
2016/02/27 DOTA
Python使用multiprocessing实现一个最简单的分布式作业调度系统
2016/03/14 Python
numpy:找到指定元素的索引示例
2019/11/26 Python
使用Tensorflow将自己的数据分割成batch训练实例
2020/01/20 Python
Flask模板引擎Jinja2使用实例
2020/04/23 Python
Django数据库迁移常见使用方法
2020/11/12 Python
Python非单向递归函数如何返回全部结果
2020/12/18 Python
CSS3网格的三个新特性详解
2014/04/04 HTML / CSS
localStorage 设置过期时间的方法实现
2018/12/21 HTML / CSS
马来西亚网上美容店:Hermo.my
2017/11/25 全球购物
用C语言实现文件读写操作
2013/10/27 面试题
高分子材料与工程专业推荐信
2013/12/01 职场文书
遗嘱公证书标准样本
2014/04/08 职场文书
设计专业毕业生求职信
2014/06/25 职场文书
营销计划书
2015/01/17 职场文书
社区文明倡议书
2015/04/28 职场文书
小学音乐课歌曲《堆雪人》教学反思
2016/02/18 职场文书
解决persistence.xml配置文件修改存放路径的问题
2022/02/24 Java/Android
win11开机发生死循环重启怎么办?win11开机发生死循环重启解决方法
2022/08/05 数码科技