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 相关文章推荐
jquery 得到当前页面高度和宽度的两个函数
Feb 21 Javascript
网易JS面试题与Javascript词法作用域说明
Nov 09 Javascript
js split 的用法和定义 js split分割字符串成数组的实例代码
May 13 Javascript
jquery按回车提交数据的代码示例
Nov 05 Javascript
Array栈方法和队列方法的特点说明
Jan 24 Javascript
Bootstrap CDN和本地化环境搭建
Oct 26 Javascript
Bootstrap DateTime Picker日历控件简单应用
Mar 25 Javascript
利用vue组件自定义v-model实现一个Tab组件方法示例
Dec 06 Javascript
JS中Promise函数then的奥秘探究
Jul 30 Javascript
vue.js引入外部CSS样式和外部JS文件的方法
Jan 06 Javascript
使用 vue 实例更好的监听事件及vue实例的方法
Apr 22 Javascript
Element Input输入框的使用方法
Jul 26 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过滤html中的其他网站链接的方法(域名白名单功能)
2014/04/24 PHP
php强制运行广告的方法
2014/12/01 PHP
基于PHP生成简单的验证码
2016/06/01 PHP
详解使用php调用微信接口上传永久素材
2017/04/11 PHP
js监听键盘事件示例代码
2013/07/26 Javascript
firefox浏览器不支持innerText的解决方法
2013/08/07 Javascript
jQuery实现仿腾讯微博滑出效果报告每日天气的方法
2015/05/11 Javascript
js如何实现点击标签文字,文字在文本框出现
2015/08/05 Javascript
如何用angularjs制作一个完整的表格
2016/01/21 Javascript
详解AngularJs中$sce与$sceDelegate上下文转义服务
2016/09/21 Javascript
Javascript 普通函数和构造函数的区别
2016/11/05 Javascript
JavaScript中的return布尔值的用法和原理解析
2017/08/14 Javascript
JS实现简单的点赞与踩功能示例
2018/12/05 Javascript
Vue中的组件及路由使用实例代码详解
2019/05/22 Javascript
个人小程序接入支付解决方案
2019/05/23 Javascript
Vue 一键清空表单的实现方法
2020/02/07 Javascript
js将URL网址转为16进制加密与解密函数
2020/03/04 Javascript
全面解析js中的原型,原型对象,原型链
2021/01/25 Javascript
python实现从字符串中找出字符1的位置以及个数的方法
2014/08/25 Python
python使用psutil模块获取系统状态
2016/08/27 Python
Python有序字典简单实现方法示例
2017/09/28 Python
python 将数据保存为excel的xls格式(实例讲解)
2018/05/03 Python
Python爬虫实战之12306抢票开源
2019/01/24 Python
pytorch torch.expand和torch.repeat的区别详解
2019/11/05 Python
Django添加bootstrap框架时无法加载静态文件的解决方式
2020/03/27 Python
基于jupyter代码无法在pycharm中运行的解决方法
2020/04/21 Python
3分钟看懂Python后端必须知道的Django的信号机制
2020/07/26 Python
HTML5新增加的功能详解
2016/09/05 HTML / CSS
Nuts.com:优质散装,批发坚果、干果和巧克力等
2017/03/21 全球购物
即兴演讲稿
2014/01/04 职场文书
婚礼证婚人演讲稿
2014/09/13 职场文书
2016年教师节慰问信
2015/12/01 职场文书
公司晚会主持词
2019/04/17 职场文书
个人落户申请书怎么写?
2019/06/28 职场文书
Nginx Rewrite使用场景及配置方法解析
2021/04/01 Servers
Vue Element-ui表单校验规则实现
2021/07/09 Vue.js