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 相关文章推荐
JavaSript中变量的作用域闭包的深入理解
May 12 Javascript
jQuery通过控制节点实现仅在前台通过get方法完成参数传递
Feb 02 Javascript
介绍JavaScript的一个微型模版
Jun 24 Javascript
jQuery右侧选项卡焦点图片轮播特效代码分享
Sep 05 Javascript
pace.js页面加载进度条插件
Sep 29 Javascript
Bootstrap每天必学之响应式导航、轮播图
Apr 25 Javascript
jQuery中 $ 符号的冲突问题及解决方案
Nov 04 Javascript
BootStrap Validator 版本差异问题导致的submitHandler失效问题的解决方法
Dec 01 Javascript
JQuery学习总结【二】
Dec 01 Javascript
JavaScript array常用方法代码实例详解
Sep 02 Javascript
js 压缩图片的示例(只缩小体积,不更改图片尺寸)
Oct 21 Javascript
js实现随机点名功能
Dec 23 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数据缓存技术
2007/02/14 PHP
php stream_get_meta_data返回值
2013/09/29 PHP
使用php清除bom示例
2014/03/03 PHP
Js 刷新框架页的代码
2010/04/13 Javascript
JavaScript几种形式的树结构菜单
2010/05/10 Javascript
JQuery 拾色器插件发布-jquery.icolor.js
2010/10/20 Javascript
jQuery EasyUI 菜单与按钮之创建简单的菜单和链接按钮
2015/11/18 Javascript
基于Angularjs实现分页功能
2016/05/30 Javascript
Bootstrap 3.x打印预览背景色与文字显示异常的解决
2016/11/06 Javascript
javascript正则表达式模糊匹配IP地址功能示例
2017/01/06 Javascript
bootstrap输入框组件使用方法详解
2017/01/19 Javascript
AngularJS ui-router (嵌套路由)实例
2017/03/10 Javascript
判断滚动条滑到底部触发事件(实例讲解)
2017/11/15 Javascript
three.js实现3D视野缩放效果
2017/11/16 Javascript
NW.js 简介与使用方法
2018/02/01 Javascript
使用Vue组件实现一个简单弹窗效果
2018/04/23 Javascript
JS实现模糊查询带下拉匹配效果
2018/06/21 Javascript
JS+H5 Canvas实现时钟效果
2018/07/20 Javascript
Vue中的基础过渡动画及实现原理解析
2018/12/04 Javascript
[01:06]DOTA2小知识课堂 Ep.01 TP出门不要忘记帮队友灌瓶哦
2019/12/05 DOTA
pycharm 使用心得(八)如何调用另一文件中的函数
2014/06/06 Python
Python将xml和xsl转换为html的方法
2015/03/10 Python
python制作花瓣网美女图片爬虫
2015/10/28 Python
python字符串str和字节数组相互转化方法
2017/03/18 Python
在 Linux/Mac 下为Python函数添加超时时间的方法
2020/02/20 Python
canvas实现二维码和图片合成的示例代码
2018/08/01 HTML / CSS
Perry Ellis官网:美国男士品味服装
2016/12/09 全球购物
技术人员面试提纲
2013/11/28 职场文书
优秀党务工作者事迹材料
2014/05/07 职场文书
预防传染病方案
2014/06/14 职场文书
反四风对照检查材料
2014/09/22 职场文书
学习党的群众路线对照检查材料
2014/09/29 职场文书
2014年社区党建工作总结
2014/11/11 职场文书
母亲去世追悼词
2015/06/23 职场文书
农村结婚典礼主持词
2015/06/29 职场文书
Vue项目打包、合并及压缩优化网页响应速度
2021/07/07 Vue.js