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 相关文章推荐
xml 封装与解析(javascript和C#中)
Jul 26 Javascript
js Event对象的5种坐标
Sep 12 Javascript
js实现动态添加、删除行、onkeyup表格求和示例
Aug 18 Javascript
jQuery插件实现大图全屏图片相册
Mar 14 Javascript
JavaScript面对国际化编程时的一些建议
Jun 24 Javascript
javascript的replace方法结合正则使用实例总结
Jun 16 Javascript
AngularJS实现标签页的两种方式
Sep 05 Javascript
使用snowfall.jquery.js实现爱心满屏飞的效果
Jan 05 Javascript
Java与JavaScript中判断两字符串是否相等的区别
Mar 13 Javascript
微信小程序导入Vant报错VM292:1 thirdScriptError的解决方法
Aug 01 Javascript
详解webpack引用jquery(第三方模块)的三种办法
Aug 21 jQuery
windows下create-react-app 升级至3.3.1版本踩坑记
Feb 17 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 Undefined index的问题
2009/06/01 PHP
PHP整合七牛实现上传文件
2015/07/03 PHP
php获取指定(访客)IP所有信息(地址、邮政编码、国家、经纬度等)的方法
2015/07/06 PHP
ThinkPHP中create()方法自动验证实例
2017/04/26 PHP
Laravel 验证码认证学习记录小结
2019/12/20 PHP
Expandable "Detail" Table Rows
2007/08/29 Javascript
javascript轻量级模板引擎juicer使用指南
2014/06/22 Javascript
javascript每日必学之循环
2016/02/19 Javascript
使用jquery/js获取iframe父子级、同级获取元素的方法
2016/08/05 Javascript
原生js二级联动效果
2017/06/20 Javascript
Vue.js如何实现路由懒加载浅析
2017/08/14 Javascript
实现两个文本框同时输入的实例
2017/09/25 Javascript
微信小程序地图导航功能实现完整源代码附效果图(推荐)
2019/04/28 Javascript
vue2之简易的pc端短信验证码的问题及处理方法
2019/06/03 Javascript
WEEX环境搭建与入门详解
2019/10/16 Javascript
解决vue项目F5刷新mounted里的函数不执行问题
2019/11/05 Javascript
不刷新网页就能链接新的js文件方法总结
2020/03/01 Javascript
Python中is与==判断的区别
2017/03/28 Python
Python 查看文件的编码格式方法
2017/12/21 Python
Python简单实现两个任意字符串乘积的方法示例
2018/04/12 Python
opencv调整图像亮度对比度的示例代码
2019/09/27 Python
python实现复制文件到指定目录
2019/10/16 Python
使用PyTorch训练一个图像分类器实例
2020/01/08 Python
python定义类的简单用法
2020/07/24 Python
美国知名女性服饰品牌:New York & Company
2017/03/23 全球购物
俄罗斯第一家多品牌在线奢侈品精品店:Aizel.ru
2020/09/06 全球购物
进修护士自我鉴定
2013/10/14 职场文书
博士生入学考试推荐信
2013/11/17 职场文书
成功经营餐厅的创业计划书范文
2013/12/26 职场文书
办公设备采购方案
2014/03/16 职场文书
幼儿园小班家长寄语
2014/04/02 职场文书
赡养老人协议书
2014/04/21 职场文书
乡镇党员干部四风对照检查材料思想汇报
2014/09/27 职场文书
2014年后勤工作总结范文
2014/12/16 职场文书
Jackson 反序列化时实现大小写不敏感设置
2021/06/29 Java/Android
解决Jenkins集成SonarQube遇到的报错问题
2021/07/15 Java/Android