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 相关文章推荐
Javascript string 扩展库代码
Apr 09 Javascript
jQuery中:selected选择器用法实例
Jan 04 Javascript
JQuery点击事件回到页面顶部效果的实现代码
May 24 Javascript
JavaScript递归操作实例浅析
Oct 31 Javascript
微信开发之调起摄像头、本地展示图片、上传下载图片实例
Dec 08 Javascript
微信小程序自定义导航隐藏和显示功能
Jun 13 Javascript
webpack构建vue项目的详细教程(配置篇)
Jul 17 Javascript
微信小程序模板template简单用法示例
Dec 04 Javascript
详解JS实现简单的时分秒倒计时代码
Apr 25 Javascript
基于vue实现一个禅道主页拖拽效果
May 27 Javascript
layui时间控件选择时间范围的实现方法
Sep 28 Javascript
基于JavaScript实现简单的轮播图
Mar 03 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通用检测函数集合
2011/02/08 PHP
PHP程序中使用adodb连接不同数据库的代码实例
2015/12/19 PHP
PHP实现微信提现功能(微信商城)
2019/11/21 PHP
区分JS中的undefined,null,"",0和false
2007/03/08 Javascript
javascript 框架小结 个人工作经验
2009/06/13 Javascript
jQuery学习7 操作JavaScript对象和集合的函数
2010/02/07 Javascript
javascript 数字格式化输出的实现代码
2013/12/10 Javascript
jQuery模拟点击A标记示例参考
2014/04/17 Javascript
JS只能输入正整数的简单实例
2016/10/07 Javascript
jQuery简单自定义图片轮播插件及用法示例
2016/11/21 Javascript
基于JavaScript实现无缝滚动效果
2017/07/21 Javascript
Node.js实现发送邮件功能
2017/11/06 Javascript
微信小程序实现图片滚动效果示例
2018/12/05 Javascript
浅谈Vue.set实际上是什么
2019/10/17 Javascript
原生js+css调节音量滑块
2020/01/15 Javascript
详解小程序横屏方案对比
2020/06/28 Javascript
[01:16:16]DOTA2-DPC中国联赛定级赛 RNG vs Phoenix BO3第二场 1月8日
2021/03/11 DOTA
Django自定义认证方式用法示例
2017/06/23 Python
在Python中实现替换字符串中的子串的示例
2018/10/31 Python
Golang GBK转UTF-8的例子
2019/08/26 Python
python实现的汉诺塔算法示例
2019/10/23 Python
浅析Django中关于session的使用
2019/12/30 Python
通过Django Admin+HttpRunner1.5.6实现简易接口测试平台
2020/11/11 Python
利用python 下载bilibili视频
2020/11/13 Python
python脚本使用阿里云slb对恶意攻击进行封堵的实现
2021/02/04 Python
python爬虫破解字体加密案例详解
2021/03/02 Python
CSS3 实现footer 固定在底部(无论页面多高始终在底部)
2019/10/15 HTML / CSS
英国山地公路自行车商店:Tweeks Cycles
2018/03/16 全球购物
Bluebella美国官网:英国性感内衣品牌
2018/10/04 全球购物
毕业生自荐信如何写
2014/03/24 职场文书
演讲稿开场白台词
2014/08/25 职场文书
酒会邀请函
2015/01/31 职场文书
大学生自我推荐信范文
2015/03/24 职场文书
植树节新闻稿
2015/07/17 职场文书
2019入党申请书格式
2019/06/25 职场文书
导游词之藏龙百瀑景区
2019/12/30 职场文书