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 混淆加密收藏
Jan 16 Javascript
基于jQuery的自动完成插件
Feb 03 Javascript
js文本框走动跑马灯效果代码分享
Aug 25 Javascript
基于JavaScript实现文字超出部分隐藏
Feb 29 Javascript
JavaScript 数组中最大最小值
Jun 05 Javascript
BootStrap Typeahead自动补全插件实例代码
Aug 10 Javascript
JS实现表单多文件上传样式美化支持选中文件后删除相关项
Sep 30 Javascript
基于JavaScript实现多级菜单效果
Jul 25 Javascript
vue中进入详情页记住滚动位置的方法(keep-alive)
Sep 21 Javascript
Vue入门学习笔记【基本概念、对象、过滤器、指令等】
Apr 13 Javascript
vue.js 子组件无法获取父组件store值的解决方式
Nov 08 Javascript
什么是SOLID
Mar 24 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中UNIX时间戳和日期间的转换与计算实例
2014/11/19 PHP
使用php的HTTP请求的库Requests实现美女图片墙
2015/02/22 PHP
PHP开发的微信现金红包功能示例
2017/06/29 PHP
Thinkphp3.2简单解决多文件上传只上传一张的问题
2017/09/26 PHP
ExtJS 学习专题(一) 如何应用ExtJS(附实例)
2010/03/11 Javascript
window.event快达到全浏览器支持了,以后使用就方便了
2011/11/30 Javascript
jquery ui对话框实例代码
2013/05/10 Javascript
jquery与js函数冲突的两种解决方法
2013/09/09 Javascript
jquery中ajax函数执行顺序问题之如何设置同步
2014/02/28 Javascript
实例讲解JS中数组Array的操作方法
2014/05/09 Javascript
JQuery遍历DOM节点的方法
2015/06/11 Javascript
使用AngularJS对路由进行安全性处理的方法
2015/06/18 Javascript
node.js cookie-parser 中间件介绍
2016/06/06 Javascript
浅谈javascript中的数据类型转换
2016/12/27 Javascript
es7学习教程之fetch解决异步嵌套问题的方法示例
2017/07/21 Javascript
解决vue-cli webpack打包后加载资源的路径问题
2018/09/25 Javascript
实例讲解JavaScript截取字符串
2018/11/30 Javascript
JavaScript实现多文件下载方法解析
2020/08/07 Javascript
[01:19]2014DOTA2国际邀请赛 采访TITAN战队ohaiyo 能赢DK很幸运
2014/07/12 DOTA
[43:03]LGD vs Newbee 2019国际邀请赛小组赛 BO2 第一场 8.16
2019/08/19 DOTA
在Python下利用OpenCV来旋转图像的教程
2015/04/16 Python
Python使用multiprocessing实现一个最简单的分布式作业调度系统
2016/03/14 Python
Python使用Mechanize模块编写爬虫的要点解析
2016/03/31 Python
python中的lambda表达式用法详解
2016/06/22 Python
python查看微信好友是否删除自己
2016/12/19 Python
python常见排序算法基础教程
2017/04/13 Python
python实现比较类的两个instance(对象)是否相等的方法分析
2019/06/26 Python
python try except返回异常的信息字符串代码实例
2019/08/15 Python
请写出一段Python代码实现删除一个list里面的重复元素
2015/12/29 面试题
医生自荐信
2013/10/11 职场文书
大学校庆策划书
2014/01/31 职场文书
小学生作文评语集锦
2014/12/25 职场文书
超市店长竞聘书
2015/09/15 职场文书
《当代神农氏》教学反思
2016/02/23 职场文书
Python还能这么玩之用Python修改了班花的开机密码
2021/06/04 Python
关于python3 opencv 图像二值化的问题(cv2.adaptiveThreshold函数)
2022/04/04 Python